0%

1.两数之和

1. 两数之和

1
2
3
4
5
6
7
8
9
10
std:unordered_map<int,int> map;
//key 存数字 value存index
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 {};
1
2
3
4
5
6
7
8
9
unordered_map<int,int> map;
for(int i = 0 ; i <nums.size();i++){
unordered_map<int,int>::iterator iter=map.find(target-nums[i]);
if(iter!=map.end()){
return {iter->second,i};
}
map.insert(pair<int,int>(nums[i],i));
}
return {};

Q: 在这边 map.insert(pair<int,int>(nums[i],i)); 可以换成 map.insert(unordered_map<int,int>(nums[i],i));吗

A: 不可以,因为 std::unordered_map 是一个关联容器,其中的元素是键值对(key-value pair),而 unordered_map<int,int>(nums[i], i) 是一个无序键值对,不能直接用来插入到 std::unordered_map 容器中。

在这个例子中,我们需要将每个元素的值 nums[i] 和下标 i 插入到 map 中,以便在后续查找过程中能够快速找到匹配的元素。因此,我们需要使用 std::pair<int, int> 类型来表示每个元素的键值对,然后将其插入到 map 中。

在代码中,map.insert(pair<int, int>(nums[i], i)); 表示将一个由 nums[i]i 组成的键值对插入到 map 中。这里使用了 std::pair<int, int> 类型来表示键值对,从而可以将其作为 map 的元素插入到容器中。

需要注意的是,C++ 中提供了很多种容器类型,每种容器类型都有其特定的用途和特性。在使用容器时,需要根据具体情况选择合适的容器类型,并了解容器类型的特性和使用方法,以提高代码的效率和可读性。

-------------本文结束感谢您的阅读-------------
老板你好,讨口饭吃