JZ42 和为S的两个数字

本文最后更新于:2022年4月9日 中午

image-20211010144412985

Solution

  • 双指针
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
vector<int> res;
int n = array.size();
if (n == 0) return res;

int l = 0, r = n - 1;
int multi = INT_MAX;
while (l <= r) {
int curSum = array[l] + array[r];
if (curSum == sum) {
if (array[l] * array[r] < multi) {
multi = array[l] * array[r];
res.clear();
res.push_back(array[l]);
res.push_back(array[r]);
}
l++;
}
else if (curSum > sum) r--;
else l++;
}
return res;
}
};

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!