1_Two Sum --LeetCode
2018-01-23 11:34
411 查看
原题如下:
思路:将nums放到一个map<int,int>中,其中,键是nums中元素,值对应其下标。然后遍历nums,取nums中一个值nums[i],接着用target减去它,最后再map中找差值map[num[i]]。如果发现差值,则返回i,map[num[i]]。
代码如下:
思路:将nums放到一个map<int,int>中,其中,键是nums中元素,值对应其下标。然后遍历nums,取nums中一个值nums[i],接着用target减去它,最后再map中找差值map[num[i]]。如果发现差值,则返回i,map[num[i]]。
代码如下:
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 vector<int> vec; 5 map<int,int> im; 6 //将nums装进map容器中,键为vector元素,值为数组下标 7 for(int i = 0;i<nums.size();i++) 8 { 9 im[nums[i]]=i; 10 } 11 12 map<int,int>::iterator it; 13 //遍历vector作差,然后再map中寻找差值,如果命中,则记录下标 14 for(int i = 0;i<nums.size();i++) 15 { 16 int sub = target - nums[i]; 17 it = im.find(sub); 18 if(it != im.end() && it->second != i) 19 { 20 vec.push_back(i); 21 vec.push_back(it->second); 22 break; 23 } 24 } 25 return vec; 26 }
相关文章推荐
- leetcode_Two sum
- [Leetcode]Two Sum
- LeetCode 1 two sum
- LeetCode Two Sum
- LeetCode 1. Two Sum
- [LeetCode]Two Sum
- leetcode 46: Two Sum
- Leetcode 1. Two Sum
- LeetCode题解-1-Two Sum
- 算法分析与设计——LeetCode Problem.1 Two Sum
- [LeetCode]1 Two Sum
- [Leetcode] Two Sum
- leetcode--Two Sum
- LeetCode----Two Sum
- LeetCode 1. Two Sum
- Leetcode 1:Two Sum
- [LeetCode]Two Sum
- leetcode 1. Two Sum
- LeetCode 1、Two Sum
- Leetcode: Two Sum