leetcode第一题,二数之和

来源:互联网 发布:北京婚纱照 知乎 编辑:程序博客网 时间:2024/06/16 02:11

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 thesame element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].下面用C++语言编写,大体改写于大神代码,但是他代码有点问题,可能是题目修改了,要求给下角标,我贴出改好的代码class Solution {public:    vector<int> twoSum(vector<int>& nums, int target) {           //Key is the number and value is its index in the vector.unordered_map<int, int> hash;vector<int> result;for (int i = 0; i < nums.size(); i++) {int numToFind = target - nums[i];            //if numberToFind is found in map, return themif (hash.find(numToFind) != hash.end()) {                    //+1 because indices are NOT zero basedresult.push_back(hash[numToFind] );result.push_back(i );return result;}            //number was not found. Put it in the map.hash[nums[i]] = i;}return result;}            };
原创粉丝点击