https://leetcode-cn.com/problems/kLl5u1/
class Solution {
public int[] twoSum(int[] numbers, int target) {
//双指针
if (numbers == null || numbers.length == 0) return new int[0];
//左右指针
int left = 0;
int right = numbers.length - 1;
while (left < right) {
int sum = numbers[left] + numbers[right];
//返回所求的两个数的下标值
//且仅存在一个有效答案
if (sum == target)
return new int[] {left, right};
//数组已按照升序排列,初始右指针指向最大的数,如果和小于target,左指针右移
else if (sum < target)
left ++;
//通过上一个else if语句,左指针已是按照尽可能小的方式进行筛选,如果sum大于target,那么就需要右指针左移实现sum减小
else
right --;
}
return new int[0];
}
}