LeetCode1. 两数之和

题目

给定一个整数数组 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 };
原文地址:https://www.cnblogs.com/fresh-coder/p/14293064.html