示例 1: 输入:numbers = [2,7,11,15], target = 9 输出:[1,2] 解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。 示例 2: 输入:numbers = [2,3,4], target = 6 输出:[1,3] 示例 3: 输入:numbers = [-1,0], target = -1 输出:[1,2] 拿到题目以后我首先想到双指针法,不过要注意输出的时候数组下标要加一 代码如下:
class Solution {
public int[] twoSum(int[] numbers, int target) {
if(numbers==null){
return null;
}
int i =0;
int j=numbers.length-1;
while(i<j){
int sum = numbers[i]+numbers[j];
if(sum == target){
return new int[] {i + 1,j + 1};
}else if(sum<target){
i++;
}else{
j--;
}
}
return null;
}
}
get!
|