leetcode日记(109)两数之和
为了准备面试又回过头将以前的题目做一遍,这题是没写日记的,所以记录一遍吧……
和两年前一样大脑空空,只会嵌套循环做,所幸看题解学到了新方法。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int,int> mp;
for(int i=0;i<nums.size();i++){
if(mp.find(target-nums[i])!=mp.end()) return vector<int> {mp[target-nums[i]],i};
mp[nums[i]]=i;
}
return vector<int> {};
}
};
其实真的很简单,每次加入新数据是看一下之前数据有没有相匹配的即可,时间复杂度一下子降到O(n)…………