zoukankan      html  css  js  c++  java
  • [LeetCode]Two Sum

    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

    使用Hash Table可以是时间复杂度降为O(n)。

     1 class Solution {
     2 public:
     3     vector<int> twoSum(vector<int>& nums, int target) {
     4         vector<int> result;
     5         unordered_map<int,int> mapping;
     6         for(int i=0;i<nums.size();i++){
     7             mapping[nums[i]]=i;
     8         }
     9         for(int i=0;i<nums.size();i++){
    10             int gap=target-nums[i];   
    11             if((mapping.find(gap)!=mapping.end()) && (mapping[gap]>i)){
    12                 result.push_back(i+1);
    13                 result.push_back(mapping[gap]+1);
    14                 break;
    15             }
    16         }
    17         return result;
    18     }
    19 };
  • 相关阅读:
    tiled工具使用
    shan
    随笔
    潘大神又一篇
    潘大神的文章
    最近用到这个强大的工具 PhysicsEditor (转)
    为什么要写博客?
    nyoj 998
    欧拉函数
    背包问题
  • 原文地址:https://www.cnblogs.com/Sean-le/p/4753006.html
Copyright © 2011-2022 走看看