LeetCode刷题之第一题——TwoSum
来源:互联网 发布:weka数据挖掘实验报告 编辑:程序博客网 时间:2024/04/28 09:49
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
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
2.只有一个解
解题思路
class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { vector<int> 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); result.push_back(j); return result; } } } return result; }};
B方案O(nlogn)。排序,然后两个指针一前一后。因为题中说明了只有一对答案,因此不需要考虑重复的情况。
c方案 O(nlogn)用map结构来完成
map的相关介绍:http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html
class Solution {public: vector<int> twoSum(vector<int> &numbers, int target) { vector<int> result; map<int, int> m; if (numbers.size() < 2) return result; for (int i = 0; i < numbers.size(); i++) m[numbers[i]] = i; map<int, int>::iterator it; for (int i = 0; i < numbers.size(); i++) { if ((it = m.find(target - numbers[i])) != m.end()) { if (i == it->second) continue; result.push_back(i); result.push_back(it->second); return result; } } return result; }};
0 0
- LeetCode刷题之第一题——TwoSum
- LeetCode刷题之第一题——TwoSum
- leetcode第一题twoSum
- 算法分析与设计——LeetCode刷题之TwoSum(easy)
- LeetCode——TwoSum
- LeetCode题解—TwoSum
- leetcode中第一题twosum问题解答算法的可行性证明
- 刷LeetCode算法之TwoSum
- Leetcode刷题记——1.TwoSum
- LeetCode 第1题 TwoSum
- leetcode——twoSum问题
- leetcode 001 —— twosum
- leetcode——1TwoSum
- LeetCode题库——TwoSum
- leetcode之TwoSum问题
- LeetCode之TwoSum
- leetcode算法之TwoSum
- leetcode之twosum问题
- OpenJudge百炼习题解答(C++)--题4010:2011
- 瑞利衰落信道
- iOS的23种设计模式简介
- 【面向对象】抽象类和接口的对比学习
- OpenJudge百炼习题解答(C++)--题4022:买房子
- LeetCode刷题之第一题——TwoSum
- JS中的“!!”
- CMake+VS2013编译与安装32/64位PCL1.8RC1源码(附网盘链接)
- 程序员面试题精选100题(04)-二元树中和为某一值的所有路径[数据结构]
- Caffe训练过程:test_iter test_interval等概念
- Perl异常处理方法总结
- arm-linux-gcc工具链安装FreeTpye 编译的支持
- HDU - 4046 Panda
- CSS高级技巧