题目
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
分析
本题目是经典哈希map使用的题目。
有关map的总结,见下图代码随想录的carl大佬图
本题不要求有序,所以使用unordered_map会快一些,但要注意向unordered_map插入数据的写法
代码
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 unordered_map<int,int> m; 5 for(int i = 0;i < nums.size();i++){ 6 auto it = m.find(target - nums[i]); 7 if(it != m.end()){ 8 return {i,it->second}; 9 } 10 //m.insert(nums[i],i); 找不到成员函数,写法错误 11 //m[nums[i]] = i; 可以 12 //m.insert(pair<int,int> (nums[i],i)); 可以 13 //m.insert({nums[i],i});可以 14 } 15 return {}; 16 } 17 18 };