23/1/18-LeetCode 01:two sum
orz太久没写代码了真的,这种感觉太陌生...
思路
- 利用哈希表
- 从0开始遍历,判断
(target-array[i])在哈希表里面是否能找到- 找得到,return;
- 找不到,把
array[i]添加进哈希表中
新内容
- auto
- unordered_map
- iterator
实现
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int len = nums.size();
//vector<int> ans; 返回的时候直接返回{}即可
unordered_map<int, int> hashmap;
//map是有序的 unordered_map是无序的 内部实现哈希表 查找问题中更高效
for(int i = 0; i < len; ++i)
{
auto now = hashmap.find(target - nums[i]);
//2 number here. can't be self addition
if(now != hashmap.end()){
return {now->second, i};
}
hashmap[nums[i]] = i;
}
return {};
}
};
2023-01-18 21:21:14 星期三

浙公网安备 33010602011771号