文章目录
- 题目介绍
- 解法
题目介绍
解法
利用相向双指针,初始时l在最用左边,r在最右边
1.numbers[l] + numbers[r] < target 则 l++
2.numbers[l] + numbers[r] < target 则 r++
3.numbers[l] + numbers[r] == target 说明找到了答案
class Solution {
public int[] twoSum(int[] numbers, int target) {
int l = 0, r = numbers.length -1;
while(l < r){
if(numbers[l] + numbers[r] == target){
break;
}else if(numbers[l] + numbers[r] < target){
l++;
}else{
r--;
}
}
return new int[]{l + 1,r + 1};
}
}