27. 3Sum
Example 1:
Input: nums = [-1,0,1,2,-1,-4]
Output: [[-1,-1,2],[-1,0,1]]
Example 2:
Input: nums = []
Output: []
Example 3:
Input: nums = [0]
Output: []Solution: (Bruteforce)
class Solution
{
public:
vector<vector<int>> threeSum(vector<int> &nums)
{
vector<vector<int>> res;
unordered_map<int, int> m;
set<vector<int>> s;
for (int i = 0; i < nums.size(); i++)
{
m[nums[i]]++;
}
for (int i = 0; i < nums.size(); i++)
{
m[nums[i]]--;
for (int j = i + 1; j < nums.size(); j++)
{
m[nums[j]]--;
int x = nums[i] + nums[j];
if (m.find(-x) != m.end())
{
if (m[-x] > 0)
{
vector<int> v;
v.push_back(nums[i]);
v.push_back(nums[j]);
v.push_back(-x);
sort(v.begin(), v.end());
s.insert(v);
}
}
m[nums[j]]++;
}
m[nums[i]]++;
}
for (auto itr = s.begin(); itr != s.end(); itr++)
{
vector<int> k = *itr;
res.push_back(k);
}
return res;
}
};Solution: (Using Sorting and 2Sum)
Last updated