首页 > 代码库 > LeetCode --- Two Sum
LeetCode --- Two Sum
题目链接
附上代码:
1 #include <vector>
2 #include <iostream>
3 #include <algorithm>
4 using namespace std;
5
6 class Solution {
7 public:
8 vector<int> twoSum(vector<int> &numbers, int target) {
9 typedef pair<int, int> pii;
10 vector<pii> my_pair;
11 for (unsigned int i = 0; i < numbers.size(); i++) {
12 my_pair.push_back(pii(numbers[i], i+1));
13 }
14 sort(my_pair.begin(), my_pair.end());
15 vector <int> ans;
16 unsigned int beg = 0, end = numbers.size() - 1;
17 while (beg < end) {
18 if (my_pair[beg].first + my_pair[end].first == target) {
19 ans.push_back(my_pair[beg].second);
20 ans.push_back(my_pair[end].second);
21 break;
22 }
23 else if (my_pair[beg].first + my_pair[end].first > target) {
24 end--;
25 }
26 else if (my_pair[beg].first + my_pair[end].first < target) {
27 beg++;
28 }
29 }
30 if (ans[0] > ans[1])
31 swap(ans[0], ans[1]);
32 return ans;
33 }
34 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。