两数之和II-输入有序数组(中等)
方法:
双指针,左指针从左往右移动,右指针从右往左移动。每次计算两个指针的位置上面的数相加,加起来如果是目标值,就返回,如果两个数加起来比目标值小,就把左指针往右移动,如果两个数加起来比目标值大,就把右指针往左移动。
class Solution {public int[] twoSum(int[] numbers, int target) {int left=0;int right=numbers.length-1;int arr[]={1,2};while(left<right){if(numbers[left]+numbers[right]==target){arr[0]=left+1;arr[1]=right+1;break;}else if(numbers[left]+numbers[right]>target){right--;}else{left++;}}return arr;}
}