Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- knakul853
- **/
- class Solution {
- public:
- vector<int> twoSum(vector<int>& nums, int target) {
- int n = (int)nums.size();
- sort(nums.begin(), nums.end());
- int l = 0;
- int r = n-1;
- while(l < r)
- {
- int sum = nums[l] + nums[r];
- if( sum > target) r--;
- else if( sum < target )l++;
- else return {l, r};
- }
- return {-1, -1};
- }
- };
- class Solution {
- public:
- vector<int> twoSum(vector<int>& nums, int target) {
- unordered_map<int,int>mp;
- for(int i=0;i<nums.size();i++){
- if(mp.count(nums[i]) && nums[i]*2 == target){
- return vector<int>{i,mp[nums[i]]};
- }
- mp[nums[i]] = i;
- }
- for(int i=0;i<(int)nums.size();i++){
- int a = nums[i];
- int b = target - a;
- if(mp.count(b) && a!=b){
- return vector<int>{i,mp[b]};
- }
- }
- assert(false);
- }
- };
Add Comment
Please, Sign In to add comment