
双指针解法:因为原来的数组有序,所以可以通过改变区间的方式求解,当左右指针的值小于目标,那么右移左指针,大于就左移右指针,相等时则为结果
java
class Solution {
public int[] twoSum(int[] numbers, int target) {
int[] result=new int[2];
for(int i=0,j=numbers.length-1;i<j;){
int sum=numbers[i]+numbers[j];
if(sum==target){
result[0]=i+1;
result[1]=j+1;
break;
}else if(sum<target){
i++;
}else
j--;
}
return result;
}
}