167. Two Sum II - Input Array Is Sorted

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int[] twoSum(int[] numbers, int target) {
int i = 0, j = numbers.length - 1;
while (i < j) {
int sum = numbers[i] + numbers[j];
if (sum < target) {
i++;
} else if (sum > target) {
j--;
} else {
return new int[]{i + 1, j + 1};
}
}

return new int[0];
}
}

注意题目要求下标从 1 开始。

References

167. Two Sum II - Input Array Is Sorted
剑指 Offer II 006. 排序数组中两个数字之和