Advertisement
Guest User

Untitled

a guest
Feb 26th, 2020
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. class Solution {
  2. public:
  3. vector<vector<int>> threeSum(vector<int>& nums) {
  4.  
  5. sort(nums.begin(), nums.end());
  6. unordered_map<int,int> M;
  7. vector<vector<int> > res;
  8. for(int i = 0; i < nums.size(); i++) {
  9. M[nums[i]] = i;
  10. }
  11.  
  12. for(int i = 0; i < nums.size(); i++) {
  13. if(i != 0 && nums[i] == nums[i - 1]) continue;
  14. int need = -nums[i];
  15. for(int j = i + 1; j < nums.size(); j++) {
  16. if(j != i + 1 && nums[j] == nums[j - 1]) continue;
  17. int req = need - nums[j];
  18. if(req > nums[nums.size() - 1]) continue;
  19.  
  20. if(M.count(req) && M[req] > j) {
  21. res.push_back({nums[i], nums[j], req});
  22. }
  23. }
  24. }
  25.  
  26. return res;
  27.  
  28. }
  29. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement