感觉之前按照序号做题实在太乱了,一直没什么进步,而且总卡在困难题上一卡就是好几天,打算按照学长说的刷三遍力扣hot100题,一步步来。
这题前几天做过,也明白了哈希表这个东西,所以思路清晰了很多。
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> exist;for(int i=0;i<nums.size();i++){if(exist[target-nums[i]]!=0) return vector<int>{i,exist[target-nums[i]]-1};exist[nums[i]]=i+1;}return vector<int>{};}
};
看到评论里说面试时面试官说不让用hash该怎么做,我的想法是先排序,然后用前后双指针,比target小就前指针后移,比target大就后指针前移,不过这样怎么记录原位置又是一个问题了。(下一轮再写好了)