167. 两数之和 II - 输入有序数组

  1. class Solution {
  2. public int[] twoSum(int[] numbers, int target) {
  3. int[] ans = new int[2];
  4. if (numbers == null || numbers.length <= 1)
  5. return ans;
  6. int left = 0, right = numbers.length - 1;
  7. while (left <= right) {
  8. if (numbers[left] + numbers[right] == target) {
  9. ans[0] = left + 1;
  10. ans[1] = right + 1;
  11. break;
  12. } else if (numbers[left] + numbers[right] < target) {
  13. ++left;
  14. } else {
  15. --right;
  16. }
  17. }
  18. return ans;
  19. }
  20. }