[LeetCode]problem 1. Two Sum
来源:互联网 发布:离线翻译软件 知乎 编辑:程序博客网 时间:2024/05/01 12:49
TAG
找相加为特定和的两个数;HashTable
题目链接
方法
真是智障.
只想到3sum了,由于要返回索引,又看到HashTable,于是用unordered_map
来预先存所有数的索引,再来用双指针找… 结果发现有重复值,又改用unordered_multimap
,感觉已经是无所不用其及。
看了DISCUSSAccepted C++ O(n) Solution,其实只需要用map来存已经找过的数,用目标值减去当前值,看差值是否在已经找过的数中。如果在,那就是了。这样才是正解啊。上面的解法就是傻逼。
代码
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,size_t> val2pos; for(int i = 0 ; i < nums.size(); ++i) { int anotherVal = target - nums[i]; if(val2pos.count(anotherVal)) { return {val2pos[anotherVal], i}; } else { val2pos[nums[i]] = i ; } } return {}; }};
后记
记一下,三元运算符下不能直接返回vector字面值形式:
return 1 ? {1,2} : {3,4}
会编译报错。没有找到原因…
0 0
- [LeetCode]problem 1. Two Sum
- LeetCode Problem 1. Two Sum
- LeetCode Problem:Two Sum
- Leetcode Problem 1: Two sum
- LeetCode.Problem 1 Two Sum
- LeetCode Problem No1 Two Sum
- LeetCode 1. Two Sum
- [LeetCode]1.Two Sum
- LeetCode 1.Two Sum
- LeetCode --- 1. Two Sum
- [Leetcode] 1. Two Sum
- leetcode---1.Two sum
- [Leetcode] 1. Two Sum
- LeetCode 1.Two Sum
- LeetCode 1.Two Sum
- LeetCode 1.Two Sum
- 【LeetCode]1.Two Sum
- LeetCode 1.Two Sum
- centos安装svn服务器详细步骤
- How To Do Research In the MIT AI Lab_1_Reading AI
- iOS 9新特性
- hdu4756(最小生成树最佳替换边)
- 设置Button背景渐变效果和点击效果
- [LeetCode]problem 1. Two Sum
- 2009年北航机考题
- sql优化
- 2_Getting connected
- hdu1312Red and Black (dfs)
- 第三方登录+分享
- 3_Learning other fields
- 4_Notebooks
- Activity的启动方式