双指针解法:因为原来的数组有序,所以可以通过改变区间的方式求解,当左右指针的值小于目标,那么右移左指针,大于就左移右指针,相等时则为结果
class Solution {public int[] twoSum(int[] numbers, int target) {int[] result=new int[2];for(int i=0,j=numbers.length-1;i<j;){int sum=numbers[i]+numbers[j];if(sum==target){result[0]=i+1;result[1]=j+1;break;}else if(sum<target){i++;}elsej--;}return result;}
}