[LeetCode 1] Two Sum solution
来源:互联网 发布:如何用python开发软件 编辑:程序博客网 时间:2024/05/17 12:24
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
- 暴力法。(O(n*n))
- hashmap. 先将array 放到hashmap 中形成<key, value>结构。然后查找。C++里使用unorder_map<int, int>
- 排序,再两指针夹逼。 前提是用struct 存下index 和value.
//[Solution 1] O(n*n)
class Solution {public:vector<int> twoSum(vector<int> &numbers, int target) {vector<int> result;if(numbers.size() <= 0) return result;for(int i = 0; i < numbers.size() – 1; i++){for(int j = i + 1; j < numbers.size(); j++){if(numbers[i] + numbers[j] == target){result.push_back(i + 1);result.push_back(j + 1);}}}return result;}};
//[Solution 2] O(n) /actually it is O(nlgn) in C++
class Solution {public: vector<int> twoSum(vector<int> &numbers, int target) { vector<int> result; unordered_map <int, int> myMap ; for(int i = 0; i < numbers.size(); i++) { myMap[numbers[i]] = i; } for(int i = 0; i < numbers.size(); i++) { const int gap = target - numbers[i]; if(myMap.find(gap) != myMap.end()) { if(i == myMap[gap]) continue;//make sure not the same value add twices result.push_back(i + 1); result.push_back(myMap[gap] + 1); break; } } return result; }};
0 0
- [LeetCode 1] Two Sum solution
- [LeetCode] Two Sum, Solution
- LeetCode #1 Two Sum C# Solution
- LeetCode 1. Two Sum Python Solution
- leetcode: two sum, hash search solution, java. O(n)
- LeetCode 1. Two Sum java solution with HashMap
- LeetCode 1 - Two Sum
- leetcode 1 Two Sum
- Leetcode【1】:Two Sum
- [leetcode 1] Two Sum
- 【leetcode-1】Two Sum
- [leetcode 1] Two Sum
- [Leetcode] 1 - Two Sum
- LeetCode (1) Two Sum
- LeetCode 1:《Two Sum》
- LeetCode | #1 Two Sum
- leetcode-1 Two Sum
- Two Sum | LeetCode(1)
- 大商超,小便利,商盟卡统统都能刷
- 动态计算UITableViewCell高度详解
- Visual Studio编译时 error LINK
- httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0
- JavaSE基础第三部分:Java数组和算法之数组
- [LeetCode 1] Two Sum solution
- AmaterasUML插件使用
- error about Oracle 11g R2 RAC install at vmware
- 包的特点
- oyh水调系统小总结---ShinePans
- Android 动态创建fragment
- Silverlight TabControl和Accordion控件使用介绍
- C++primer plus第六版课后编程题答案8.1
- 微信会员注册开发【带源码】:网页授权,得到code后在当前页面获取openid,js+php实现跨域请求