https://leetcode.com/problems/3sum/description/
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; sort(nums.begin(), nums.end()); for (int i = 0; i < nums.size(); i++) { if (i > 0 && nums[i] == nums[i-1]) continue; for (int j = i + 1, k = nums.size() - 1; j < k; ) { int t = nums[j] + nums[k]; if (t == -nums[i]) { // found auto cur = vector<int>({nums[i], nums[j], nums[k]}); res.push_back(cur); j++; k--; while (j < k && nums[j] == nums[j-1]) j++; while (j < k && nums[k] == nums[k+1]) k--; } else if (t > -nums[i]) k--; else j++; } } return res; } };