LeetCode:1. Add Two Numbers
2017-05-11 00:13
309 查看
题目:
LeetCode:1. Add Two Numbers
描述:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
样例:
分析:
思路如下:
1) 利用hashmap来存储数组元素以及其对应索引值,提高检索效率
2) 通过nTarget - vecNum[i]来获取对应的检索目标元素
3) 返回满足条件的索引值
代码:
备注:
LC上大神的 0ms 的代码:
LeetCode:1. Add Two Numbers
描述:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
样例:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
分析:
思路如下:
1) 利用hashmap来存储数组元素以及其对应索引值,提高检索效率
2) 通过nTarget - vecNum[i]来获取对应的检索目标元素
3) 返回满足条件的索引值
代码:
vector<int> twoSum(vector<int>& vecNum, int nTarget) { vector<int> vecTemp; unordered_map<int, int> hashMapTemp; for (int i = 0; i < vecNum.size(); i++) { hashMapTemp[vecNum[i]] = i; } for (int i = 0; i < vecNum.size(); i++) { const int nPart = nTarget - vecNum[i]; if (hashMapTemp.find(nPart) != hashMapTemp.end() && hashMapTemp[nPart] > i) { vecTemp.push_back(i); vecTemp.push_back(hashMapTemp[nPart]); break; } } return vecTemp; }
备注:
LC上大神的 0ms 的代码:
vector<int> twoSum(vector<int> &numbers, int target) { //Key is the number and value is its index in the vector. unordered_map<int, int> hash; vector<int> result; for (int i = 0; i < numbers.size(); i++) { int numberToFind = target - numbers[i]; //if numberToFind is found in map, return them if (hash.find(numberToFind) != hash.end()) { //+1 because indices are NOT zero based result.push_back(hash[numberToFind] + 1); result.push_back(i + 1); return result; } //number was not found. Put it in the map. hash[numbers[i]] = i; } return result; }
相关文章推荐
- leetcode-Add Two Numbers
- LeetCode 002 AddTwoNumbers
- [Leetcode]2.Add Two Numbers
- leetcode Add Two Numbers
- LeetCode-002 Add Two Numbers
- 【leetcode】 Add Two Numbers
- leetcode 2. Add Two Numbers (linked lists)
- LeetCode_Add Two Numbers
- LeetCode-004 Add Two Numbers
- LeetCode题解 #2 Add Two Numbers
- LeetCode-2.Add Two Numbers
- LeetCode---Add Two Numbers
- 算法分析与设计——LeetCode Problem.2 Add Two Numbers
- 【JAVA、C++】LeetCode 002 Add Two Numbers
- leetcode--Add Two Numbers
- LeetCode 2. Add Two Numbers(C++版)
- 【LeetCode】Add Two Numbers
- 【Leetcode】Add Two Numbers
- [LeetCode] Add Two Numbers II 两个数字相加之二
- [leetcode]Add Two Numbers