nikunjsoni

15

Apr 18th, 2021
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<vector<int>> threeSum(vector<int>& nums) {
  4.         sort(nums.begin(), nums.end());
  5.         int left, right, sum;
  6.         vector<vector<int>> res;
  7.         for(int i=0; i<nums.size(); i++){
  8.             if(i > 0 && nums[i] == nums[i-1]) continue;
  9.             sum = -nums[i];
  10.             left = i+1;
  11.             right = nums.size()-1;
  12.             while(left < right){
  13.                 if(nums[left]+nums[right] > sum) right--;
  14.                 else if(nums[left]+nums[right] < sum) left++;
  15.                 else if(nums[left]+nums[right] == sum){
  16.                     res.push_back({nums[i], nums[left], nums[right]});
  17.                     while(left < nums.size()-1 && nums[left] == nums[left+1]) left++;
  18.                     while(right > i && nums[right] == nums[right-1]) right--;
  19.                     left++;
  20.                     right--;
  21.                 }
  22.             }
  23.         }
  24.         return res;
  25.     }
  26. };
Advertisement
Add Comment
Please, Sign In to add comment