给定一个有序数组,求能够求和形成target的两个元素。
由于是有序,可以用O(n)复杂度完成。两指针同时指向前后,判断该如何移动即可。
class Solution {
public int[] twoSum(int[] numbers, int target) {
if(numbers==null || numbers.length<2) return null;
int l= 0;
int r= numbers.length-1;
while(l<r){
int sum= numbers[l]+numbers[r];
if(sum== target){return new int[]{l+1,r+1};}
else if(sum< target){l++;}
else{r--;}
}
return null;
}
}