mirror of
https://github.com/Manoj-HV30/dsa-competitive-programming.git
synced 2026-05-16 19:35:22 +00:00
35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
class Solution {
|
|
public:
|
|
vector<vector<int>> fourSum(vector<int>& nums, int target) {
|
|
int n = nums.size();
|
|
sort(nums.begin(), nums.end());
|
|
set<vector<int>> set;
|
|
vector<vector<int>> output;
|
|
for(int i=0; i<n-3; i++){
|
|
for(int j=i+1; j<n-2; j++){
|
|
long long newTarget = (long long)target - (long long)nums[i] - (long long)nums[j];
|
|
int low = j+1, high = n-1;
|
|
while(low < high){
|
|
if(nums[low] + nums[high] < newTarget){
|
|
low++;
|
|
}
|
|
else if(nums[low] + nums[high] > newTarget){
|
|
high--;
|
|
}
|
|
else{
|
|
set.insert({nums[i], nums[j], nums[low], nums[high]});
|
|
low++; high--;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for(auto it : set){
|
|
output.push_back(it);
|
|
}
|
|
return output;
|
|
}
|
|
};
|
|
|
|
//TC : O(n^3)
|
|
//SC : o(n)
|