File tree Expand file tree Collapse file tree 1 file changed +8
-9
lines changed
Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Original file line number Diff line number Diff line change 1+ // TC: O(N), SC: O(N)
2+
13class Solution {
24public:
35 vector<int > twoSum (vector<int >& nums, int target) {
4- vector<tuple<int , int >> arr;
5- arr.reserve (nums.size ());
6+ unordered_map<int , int > m;
67 for (int i = 0 ; i < nums.size (); i++) {
7- arr. push_back ({ nums[i], i}) ;
8+ m[ nums[i]] = i ;
89 }
9- int s = 0 ; int e = nums.size ()-1 ;
10- sort (arr.begin (), arr.end ());
11- while (s < e) {
12- if (get<0 >(arr[s]) + get<0 >(arr[e]) > target) e-=1 ;
13- else if (get<0 >(arr[s]) + get<0 >(arr[e]) < target) s+=1 ;
14- else return {get<1 >(arr[s]), get<1 >(arr[e])};
10+ for (int first = 0 ; first < nums.size (); first++) {
11+ if (m.count (target - nums[first]) > 0 && first != m[target - nums[first]]) {
12+ return {first, m[target - nums[first]]};
13+ }
1514 }
1615 return {};
1716 }
You can’t perform that action at this time.
0 commit comments