class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> ans;
if(nums.size()<4){
return ans;
}
sort(nums.begin(),nums.end());
int i,j,k,l,t;
i=0;
while(i<nums.size()-3){
j=i+1;
while(j<nums.size()-2){
k=j+1;
l=nums.size()-1;
t=target-nums[i]-nums[j];
while(k<l){
if(nums[k]+nums[l]==t){
ans.push_back({nums[i],nums[j],nums[k],nums[l]});
do{
k++;
}while(nums[k-1]==nums[k]&&l>k);
do{
l--;
}while(nums[l+1]==nums[l]&&l>k);
}
else{
if(nums[k]+nums[l]>t){
l--;
}
else{
k++;
}
}
}
do{
j++;
}while(nums[j-1]==nums[j]&&j<nums.size()-2);
}
do{
i++;
}while(nums[i-1]==nums[i]&&i<nums.size()-3);
}
return ans;
}
};
LeetCode #18 四数之和
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,...
- 18 4Sum 四数之和 Description:Given an array nums of n integer...