时间轴

2025-11-10

init


题目:

双指针分别指向头和尾,如果两个指针指向的值相加大于target,就让尾指针左移,减小两个指针相加的和;如果两个指针指向的值相加小于target,就让头指针右移,增加两个指针相加的和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <vector>
using std::vector;

class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target)
{
int i = 0, j = numbers.size() - 1, curr;
while (i < j) {
curr = numbers[i] + numbers[j];
if (curr < target) {
i++;
} else if (curr > target) {
j--;
} else {
break;
}
}
return { i + 1, j + 1 };
}
};