暴力解法+官方题解正确方法
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
//暴力解法
/* int len = nums.size();//用size函数来获取动态数组的长度
for(int i = 0; i < len - 1 ; i++)
{
for(int j = i+1; j < len ; j++)
{
if(nums[i]+nums[j]==target)
return {i,j};
}
}
return {};
*/
//哈希表方法
unordered_map<int,int> hashtable;//创建一个哈希表
for(int i = 0 ; i < nums.size(); ++i)
{
auto it = hashtable.find(target - nums[i]);//找nums【i】对应的另一个加数
if(it != hashtable.end())//找到了
{
return{it->second,i};//迭代器指的first是键值,second是值
}
hashtable[nums[i]]=i;//如果没找到,把元素加入到哈希表中,刚开始相当于对哈希表进行初始化一组值
}
return{};//一直没找到的话也要返回值,否则函数无效
}
};