Two Sum--leetcode
来源:互联网 发布:西安科技大学考研 知乎 编辑:程序博客网 时间:2024/05/21 09:55
题目的意思就是在一个数组里面找到两个元素,它们的和与给定的期望值一样,返回值为两个元素的位置信息。
- 第一种本能想法O(n2)的算法:
<span style="font-size:14px;"> vector<int> twoSum(vector<int>& nums, int target) { int i=0; int j=0; int len=nums.size(); vector<int> ret; for(i=0;i<len;i++) { for(j=i+1;j<len;j++) { if((nums[i]+nums[j])==target) { ret.push_back(i); ret.push_back(j); return ret; } } } return ret; }</span>
Runtime: 564 ms 这种算法时间复杂度较高,搜了下网上发现居然有O(N)的解法
- 第二种O(N)算法,利用哈希表辅助存储:
<span style="font-size:14px;"> vector<int> twoSum(vector<int>& nums, int target) { int i=0; int j=0; int len=nums.size(); vector<int> ret; map<int,int> listIndex; map<int,int>::iterator it; for(i=0;i<len;i++) { it = listIndex.find(target-nums[i]); if(it == listIndex.end()) { listIndex[nums[i]]=i; } else { ret.push_back(it->second); ret.push_back(i); return ret; } } return ret; }</span>
Runtime: 24 ms 从i=0到数组末尾依次进行遍历,当前位置为i,查找target-nums[i]是否在哈希表中,题目要求只需要找到一个解,因此能够满足要求。
0 0
- 【Leetcode】Two Sum (Sum)
- LeetCode: Two Sum
- LeetCode: Two Sum
- [Leetcode] Two Sum
- LeetCode : Two Sum
- Leetcode: Two Sum
- leetcode 46: Two Sum
- [LeetCode] Two Sum
- LeetCode 1 - Two Sum
- Leetcode : Two Sum
- 【leetcode】Two Sum
- [LeetCode]Two Sum
- leetcode Two Sum
- [Leetcode] Two Sum
- [leetcode] Two Sum
- LeetCode - Two Sum
- leetcode之Two Sum
- LeetCode | Two Sum
- 谈C#中的Delegate
- Golang开发新手常犯的50个错误
- 传统制造如何走向“智能制造”
- webstorm快捷键
- 长按手势获取UITableView的indexPath值,删除某行
- Two Sum--leetcode
- Win7 64位环境下,vs2013和Opencv2.4.13的配置
- 实习过程中常用到的 技巧(1)
- leetCode_Permutation Sequence
- NOIP 2012 Day1 T3 开车旅行
- [AIR]批量修改目录中图片的操作方式
- LED发光管实验报告
- AOE网关键路径的算法,最最最最直接的算法,一学就会
- NOIP 2014 Day2 T1 无线网络发射器选址