leetcode力扣刷题打卡
题目:面试题 16.24. 数对和
描述:设计一个算法,找出数组中两数之和为指定值的所有整数对。一个数只能属于一个数对。
思路:
1、排序 + 双指针
2、一定要先排序。
原代码##
class Solution {
public:
vector<vector<int>> pairSums(vector<int>& nums, int target) {
int n = nums.size();
sort(nums.begin(), nums.end());
vector<vector<int>> ans;
int l = 0, r = n - 1;
while (l < r) {
int tmp = nums[l] + nums[r];
if (tmp > target) r--;
else if (tmp == target) {
ans.push_back({nums[l], nums[r]});
r--;
l++;
}
else l++;
}
return ans;
}
};