zoukankan      html  css  js  c++  java
  • 2Sum

    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].
    

    UPDATE (2016/2/13):
    The return format had been changed to zero-based indices. Please read the above updated description carefully.

    class Solution {
    public:
      vector<int> twoSum(vector<int>& nums,int target){
            vector<int> res;
            unordered_map<int,int> mapping;
            for(size_t i=0;i<nums.size();i++){
                mapping[nums[i]] = i;
            }
            for(size_t i=0;i<nums.size();i++){
                const int key = target - nums[i];
                if(mapping.find(key) != mapping.end()){
                    if(i != mapping[key]){
                        res.push_back(i);
                        res.push_back(mapping[key]);
                        break;
                    }
                }
            }
            return res;
        }
    };
  • 相关阅读:
    UVa 727
    UVa 11495
    UVa 299
    UVa 10194
    UVa 146
    10025
    Tug of War POJ 2576 DP(类似背包)
    Problem A: Freckles UVA 10034 裸生成树
    UVA 562
    CF DIV 2 206 C. Vasya and Robot
  • 原文地址:https://www.cnblogs.com/wxquare/p/5921976.html
Copyright © 2011-2022 走看看