leetcode-two sum(2014.4.3)
来源:互联网 发布:住宅成交数据 编辑:程序博客网 时间:2024/05/26 09:53
该问题和编程之美中的相似问题有所区别,编程之美中是要返回具体的两个值,而该题是要返回两个标志。
所以不能先行排序将之处理为有序序列。
尝试采用map将数值和标志位进行关联。出现问题:向量中的值有可能是重复的!这也是做哈希要考虑的一个问题,有冲突。
参考的网上的方法,用结构体来建立数组值和下标的关系:
struct Node{ int num, pos;};bool cmp(Node a, Node b){ return a.num < b.num;}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<int> result; vector<Node> array; for (int i = 0; i < numbers.size(); i++) { Node temp; temp.num = numbers[i]; temp.pos = i; array.push_back(temp); } sort(array.begin(), array.end(), cmp); for (int i = 0, j = array.size() - 1; i != j;) { int sum = array[i].num + array[j].num; if (sum == target) { if (array[i].pos < array[j].pos) { result.push_back(array[i].pos + 1); result.push_back(array[j].pos + 1); } else { result.push_back(array[j].pos + 1); result.push_back(array[i].pos + 1); } break; } else if (sum < target) { i++; } else if (sum > target) { j--; } } return result; }};
0 0
- leetcode-two sum(2014.4.3)
- LeetCode(Two Sum)
- LeetCode *** 15. 3Sum (Two Pointers )
- [leetcode][two pointers] 3Sum
- LeetCode(1)Two Sum
- LeetCode(1)Two Sum
- LeetCode(一)Two Sum
- 1. Two Sum(leetcode)
- leetcode(1) - Two Sum
- LeetCode刷题(Two Sum)
- leetcode(1)Two Sum
- LeetCode(Array)---------Two Sum
- 【Leetcode】Two Sum (Sum)
- LeetCode (1)Two Sum | LeetCode
- [LeetCode] Two Sum, 3Sum ,3SumCloset , 4Sum
- leetcode挨个儿刷150428(3):Two Sum
- [leetcode][two pointers][大数] 3Sum Closest
- LeetCode 16. 3Sum Closest (Two-Pointer)
- Python笔记整理(3)
- 解读ClassLoader
- 项目四(错误,烦乱版)。友元类
- 用MySQLDump来打包(压缩)备份文件及如何还原到其他端口上的数据库
- 王金平:有义务尽快使“立法院”恢复运作
- leetcode-two sum(2014.4.3)
- Perl 中的正则表达式
- HTML笔记——列表
- POJ2524
- PHP生成和获取XML格式数据
- 操作系统之PV操作
- unable to load virtualbox engine解决方案
- leetcode-gas station(2014.2.21)
- C++创建类必备的三个函数以及使用new所需要做的事