zoukankan      html  css  js  c++  java
  • 1. Two Sum

    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, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].

    Solution 1: use unordered_map to store <num,index>, find whether target-num exists in the map(O(1))

     1 class Solution {
     2 public:
     3     vector<int> twoSum(vector<int>& nums, int target) {
     4         unordered_map<int,int> m;
     5         vector<int> res;
     6         for (int i=0;i<nums.size();i++){
     7             m[nums[i]]=i;
     8         }
     9         for (int i=0; i<nums.size();i++){
    10             int x=target-nums[i];
    11             if(m.count(x)&&m[x]!=i){
    12                 res.push_back(i);
    13                 res.push_back(m[x]);
    14                 break;
    15             }
    16         }
    17         return res;
    18     }
    19 };
  • 相关阅读:
    Uboot USB模式(RK3288变砖头的解决办法)
    C++ 解析一
    C++基础
    shell脚本分析二
    ASCII
    POJ 1970 The Game (DFS)
    PoJ1979 Red and Black (DFS)
    UVA 572 Oil Deposits (DFS)
    打印日历
    求第N个素数
  • 原文地址:https://www.cnblogs.com/anghostcici/p/6810744.html
Copyright © 2011-2022 走看看