这道题固然用两根指针能做,自己之后还要想一下二叉做法,候着吧。
public class Solution {
public int[] twoSum(int[] numbers, int target) {
int [] result = new int[2];
if (numbers == null || numbers.length < 2) {
return result;
}
int left = 0, right = numbers.length - 1;
while (left < right) {
int num = numbers[left] + numbers[right];
if (num > target) {
right--;
} else if (num < target) {
left++;
} else {
result[0] = left + 1;
result[1] = right + 1;
return result;
}
}
return null;
// int [] result = new int[2];
// if (numbers == null || numbers.length < 2) {
// return result;
// }
// int left = 0, right = numbers.length - 1;
// while (left + 1 < right) {
// int mid = left + (right - left) / 2;
// if (numbers[mid] <= target) {
// right = mid;
// break;
// } else {
// left = mid;
// }
// }
}
}