Skip to content

Commit 3ed30db

Browse files
committed
Add solution for LeetCode "Two Sum" problem
1 parent eb597ca commit 3ed30db

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

TwoSum.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include <iostream>
2+
#include <vector>
3+
#include <algorithm>
4+
using namespace std;
5+
6+
class Solution {
7+
public:
8+
vector<int> twoSum(vector<int>& numbers, int target) {
9+
int n = numbers.size();
10+
vector<pair<int, int> > mm;
11+
for (int i = 0; i < n; ++i) mm.push_back(make_pair(numbers[i], i + 1));
12+
sort(mm.begin(), mm.end());
13+
int lp = 0, rp = n - 1;
14+
while (lp < rp) {
15+
int sum = mm[lp].first + mm[rp].first;
16+
if (sum == target) break;
17+
else if (sum < target) ++lp;
18+
else --rp;
19+
}
20+
vector<int> ret;
21+
ret.push_back(min(mm[lp].second, mm[rp].second));
22+
ret.push_back(max(mm[lp].second, mm[rp].second));
23+
return ret;
24+
}
25+
};

0 commit comments

Comments
 (0)