[leetcode] Two Sum
来源:互联网 发布:小满的淘宝店 编辑:程序博客网 时间:2024/06/05 12:07
From: https://leetcode.com/problems/two-sum/
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
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) {vector<int> copy(nums.begin(), nums.end());sort(copy.begin(), copy.end());int st=0, ed=copy.size()-1;while(st < ed) {if(copy[st]+copy[ed] == target) break;if(copy[st]+copy[ed] > target) ed--;else st++;}vector<int> ans;if(copy[st]+copy[ed] != target) return ans;int t1=copy[st], t2=copy[ed];st=-1; ed=-1;for(int i=0, len=nums.size(); i<len; i++) {if(nums[i]==t1 || nums[i]==t2) {if(st == -1) st=i;else if(nums[st]+nums[i] == target){ ed=i; break;}}}ans.push_back(st+1);ans.push_back(ed+1);return ans; }};
class Solution {public: vector<int> twoSum(vector<int> &nums, int target) { unordered_map<int,int> occured; vector<int> ans; for(int i=0; i<nums.size(); ++i) { if(occured.find(target-nums[i])!=occured.end()) { ans.push_back(occured[target-nums[i]]+1); ans.push_back(i+1); break; } if(occured.find(nums[i]) == occured.end()) { occured[nums[i]] = i; } } return ans; }};
貌似后者的速度应该更快,但从leetcode执行结果看,前者更快。
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
- 信息分类-餐饮美食特性数据表
- Linux文件权限详解(二)
- 从最近两会看苹果和谷歌的最大梦魇
- 第十五周 项目二--二进制文件浏览器
- POJ 1218 THE DRUNK JAILER(数论)
- [leetcode] Two Sum
- 9.16
- Linux用户操作(在实验楼的学习记录)
- 可穿戴设备领域的两大独角兽FitBit和GoPro数据大PK
- 第十六周项目三 max带来的冲突
- 单例设计模式的两种实现
- 第十六周【项目1-平方根中的异常】
- 【日常学习】【棋盘DP】codevs1267 老鼠的旅行题解
- 你的初创企业究竟应该用哪种开源协议?