LeetCode 1 两数之和

 

1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

你可以按任意顺序返回答案。

 

 1 class Solution {
 2 public:
 3     vector<int> twoSum(vector<int>& nums, int target) {
 4         map<int,int> a;//提供一对一的hash
 5         vector<int> b(2,-1);//用来承载结果,初始化一个大小为2,值为-1的容器b
 6         for(int i=0;i<nums.size();i++)
 7         {
 8             if(a.count(target-nums[i])>0)
 9             {
10                 b[0]=a[target-nums[i]];
11                 b[1]=i;
12                 break;
13             }
14             a[nums[i]]=i;//反过来放入map中,用来获取结果下标
15         }
16         return b;
17     };
18 };
19 
20 
21 //1,map简介
22 //map是STL的一个关联容器,它提供一对一的hash。
23 //第一个可以称为关键字(key),每个关键字只能在map中出现一次;
24 //第二个可能称为该关键字的值(value);
25 //2,vector
26 //vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:

 

posted @ 2021-02-22 21:56  刘凯_tju  阅读(40)  评论(0编辑  收藏  举报