class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> res;
sort(nums.begin(),nums.end());
//过滤下标相同的结果
int n=nums.size();
for(int a=0;a<n;a++){
if(a&&nums[a]==nums[a-1]) continue;//过滤元素相同的结果
for(int b=a+1;b<n;b++){
if(b>a+1&&nums[b]==nums[b-1]) continue;
for(int c=b+1,d=n-1;c<d;c++){
if(c>b+1&&nums[c]==nums[c-1]) continue;
while(d>c&&(long long)nums[a]+nums[b]+nums[c]+nums[d]>target) d--;
if(d>c&&(long long)nums[a]+nums[b]+nums[c]+nums[d]==target)
res.push_back({nums[a],nums[b],nums[c],nums[d]});
}
}
}
return res;
}
};
LeetCode 18. 四数之和
最新推荐文章于 2024-07-23 16:17:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)