knakul853

Untitled

Jul 15th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. /**
  2. knakul853
  3. **/
  4. class Solution {
  5. public:
  6.     vector<vector<int>> fourSum(vector<int>& nums, int target) {
  7.        
  8.         int n = (int)nums.size();
  9.        
  10.         if(nums.size() < 0) return {{}};
  11.        
  12.         sort(nums.begin(), nums.end());
  13.        
  14.         vector<vector<int>>ans;
  15.        
  16.         for( int i=0;i<n;i++)
  17.         {
  18.            int target3 = target - nums[i];
  19.            
  20.            
  21.             for(int j=i+1; j<n; j++ )
  22.             {
  23.                int target2 = target3 - nums[j];
  24.                
  25.                
  26.                 int front = j +1;
  27.                 int back = n-1;
  28.                
  29.                 while(front < back)
  30.                 {
  31.                     if( nums[front] + nums[back] < target2)front++;
  32.                    
  33.                     else if(nums[front] + nums[back] > target2) back--;
  34.                    
  35.                     else{
  36.                        
  37.                         vector<int>temp={nums[i], nums[j], nums[front], nums[back]};
  38.                         ans.push_back(temp);
  39.                         while( front < back && nums[front] == temp[2]) front++;
  40.                         while( front < back && nums[back] == temp[3]) back--;
  41.                     }
  42.  
  43.                 }
  44.                
  45.                 while(j+1 < n && nums[j] == nums[j+1])j++;
  46.             }
  47.            
  48.             while(i+1 < n && nums[i] == nums[i+1])i++;
  49.         }
  50.        
  51.         return ans;
  52.     }
  53. };
Add Comment
Please, Sign In to add comment