knakul853

Untitled

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