- 一、题目描述
- 二、示例
- 三、难度
- 四、代码
- Java版
- C++版
- 补充
四、代码 Java版中等
public class Solution {
public static int[] twoSum(int[] numbers, int target) {
int left = 0, right = numbers.length-1;
while (numbers[left] + numbers[right] != target && left < right) {
if (numbers[left] + numbers[right] > target) {
-- right;
}
else if (numbers[left] + numbers[right] < target) {
++ left;
}
}
return new int[]{left+1,right+1};
}
public static void main(String[] args) {
int[] arr = new int[]{-1,0};
System.out.println(Arrays.toString(twoSum(arr,-1)));
}
}
C++版
class Solution {
public:
vector twoSum(vector& numbers, int target) {
int left = 0, right = numbers.size()-1;
while (left < right) {
int sum = numbers[left] + numbers[right];
if(sum == target) return vector{left+1,right+1};
else if (sum < target) ++left;
else --right;
}
return vector(2,-1);
}
};
补充
vectorv1(8); //v1有8个元素,每个数的值都是0 vector v2{8}; //v2有1个元素,值是8 vector v3(7,6); //v3有7个元素,每个数的值都是6 vector v4{6,3}; //v4有2个元素,值分别是6和3



