美文网首页
Two Sum 题解

Two Sum 题解

作者: BookThief | 来源:发表于2017-06-04 23:38 被阅读0次

    题目描述

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

    代码及注释

    class Solution {
    public:
        vector<int> twoSum(vector<int>& nums, int target) {
          unordered_map<int,int> numsmap;
          vector<int> result;
          for(int i = 0;i<nums.size();++i){
            numsmap[nums[i]] = i;
          }
          for(int i = 0;i<nums.size();i++){
            int gap = target - nums[i];
            if(numsmap.find(gap) != numsmap.end() && numsmap.find(gap) != i){
              result.push_back(i+1);
              result.push_back(numsmap[gap] + 1);
              break;
            }
          }
          return result; 
        }
    };
    

    分析

    相关文章

      网友评论

          本文标题:Two Sum 题解

          本文链接:https://www.haomeiwen.com/subject/vgibfxtx.html