[LeetCode] Two Sum
2013-01-29 00:39
435 查看
struct Wrapper { int val; int pos; }; bool compare(const Wrapper &w1, const Wrapper &w2) { return w1.val < w2.val; } class Solution { public: vector<int> twoSum(vector<int> &numbers, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<Wrapper> v; for (int i = 0; i < numbers.size(); i++) { Wrapper w; w.val = numbers[i]; w.pos = i + 1; v.push_back(w); } sort(v.begin(), v.end(), compare); vector<int> ret; int l = 0; int r = v.size() - 1; while (l <= r) { int sum = v[l].val + v[r].val; if (sum == target) { int m = max(v[l].pos, v[r].pos); int n = min(v[l].pos, v[r].pos); ret.push_back(n); ret.push_back(m); return ret; } else if (sum < target) { l++; } else { r--; } } return ret; } };
Small Case: 12ms
Large Case: 12ms
Time: O(nlgn)
Space: O(n)
相关文章推荐
- [Leetcode] Two Sum
- [Leetcode] 1. Two Sum
- Two sum-LeetCode
- LeetCode 001 Two Sum
- leetcode : Two Sum
- Two Sum (leetcode)
- Leetcode-1:Two Sum
- LeetCode 解题报告 Two Sum
- leetcode--Two Sum
- LeetCode:Two Sum
- LeetCode 1. Two Sum
- LeetCode (1) Two Sum
- LeetCode #1Two Sum
- Leetcode[Easy] - Two Sum
- Leetcode - Pointers/Array - Two sum
- [LeetCode] Two Sum
- Java 哈希表运用-LeetCode 1 Two Sum
- 1_Two Sum --LeetCode
- LeetCode_1_Two Sum
- LeetCode 1:two sum