码迷,mamicode.com
首页 > 其他好文 > 详细

1. Two Sum

时间:2016-11-26 14:41:30      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:add   return   spec   tor   target   round   bottom   输入   https   

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

从给定序列中找出和为指定数字的两个数字的下标

You may assume that each input would have exactly one solution.

假设每个输入只有一个解

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

Brute Force

time complexity O(n2)
space complexity O(1)
  1. class Solution {
  2. public:
  3. vector<int> twoSum(vector<int>& nums, int target) {
  4. vector<int> result;
  5. int len = nums.size();
  6. for(int i = 0; i < len - 1; ++i){
  7. for(int j = i + 1; j < len; ++j){
  8. if(nums[i]+nums[j] == target){
  9. result.push_back(i);
  10. result.push_back(j);
  11. return result;
  12. }
  13. }
  14. }
  15. return result;
  16. }
  17. };

Hash

time complexity O(n)
space complexity O(n)
该方法给出的序列是从后往前的
  1. class Solution {
  2. public:
  3. vector<int> twoSum(vector<int>& nums, int target) {
  4. unordered_map<int, int> imap;
  5. for (int i = 0;; ++i) {
  6. auto it = imap.find(target - nums[i]);
  7. if (it != imap.end())
  8. return vector<int> {i, it->second};
  9. imap[nums[i]] = i;
  10. }
  11. }
  12. };








1. Two Sum

标签:add   return   spec   tor   target   round   bottom   输入   https   

原文地址:http://www.cnblogs.com/zhxshseu/p/518f20ed58e6c7e087281705db71057d.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!