LeetCode (1) Two Sum
来源:互联网 发布:基于比较的排序算法 编辑:程序博客网 时间:2024/04/27 13:14
题目描述:
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
可能出现的badcase: 答案中存在一个数为target/2时。
实现思路:若第一层遍历数1,第二层遍历数2,则时间复杂度O(n2)遍历。若仅进行第一遍遍历,在寻找第二个数的时候使用Hash表存储数据,则时间复杂度为O(n),此时需要注意badcase问题。
实现代码如下:
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
map<int, int> hash_map;
vector<int> r;
for (int i=0; i != numbers.size(); ++i)
{
hash_map[numbers[i]] = i;
}
for(int i=0; i != numbers.size(); ++i)
{
map<int, int>::iterator it = hash_map.find(target-numbers[i]);
if (it != hash_map.end())
{
if(i+1 == it->second+1)
continue;
r.push_back(min(i+1, it->second+1));
r.push_back(max(i+1, it->second+1));
}
}
return r;
}
};
0 0
- 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)
- [Leetcode]1Two Sum
- leetcode 1 Two Sum
- leetcode #1 Two Sum
- leetcode 1:Two Sum
- LeetCode 1 Two Sum
- leetcode #1 two sum
- 2015书单
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- Vs2013在Linux开发中的应用(29):寄存器信息
- linux mount时出现的两个问题
- dubbo学习(一)-dubbo基于SPI思想的实现
- LeetCode (1) Two Sum
- 云课堂java-第六周编程作业1-单词长度
- shell 变量
- Python Syntax Note
- android学习二十(使用HTTP协议访问网络)
- lint 代码审查工具
- mybatis,springmvc
- Android数据持久化的方式总结
- 云课堂java-第六周编程作业2-GPS数据处理