- 利用数组的有序性,双指针;
- 如果左右指针元素之和等于sum,返回左右指针元素;
- 如果左右指针元素之和小于sum,左指针增加;
- 如果左右指针元素之和大于sum,右指针减少;
- 没有满足条件,返回空数组。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
int left = 0, right = array.size() - 1;
vector<int> result;
while (left < right) {
if (array[left] + array[right] == sum) {
result.push_back(array[left]);
result.push_back(array[right]);
return result;
}
else if (array[left] + array[right] < sum) {
left++;
}
else {
right--;
}
}
return result;
}
};