leetcode1_两数之和
1、题目
2、代码分析
主要是参考代码。
这里我的思维陷入了误区,之间用了很多双指针前后逼近的方法,然后觉得排序之后也可以这么做,一般来说是可以的,但是麻烦在于这里需要排序之前的序号。
这里可能使用python的话,会简单一点,但是使用vector好像需要自己手动去找。
不管了,这里用map去查找比较好。
参考代码:
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { std::unordered_map <int,int> map; for(int i = 0; i < nums.size(); i++) { auto iter = map.find(target - nums[i]); if(iter != map.end()) { return {iter->second, i}; } map.insert(pair<int, int>(nums[i], i)); } return {}; } };