1. Two Sum

来源:互联网 发布:怎么样加入淘宝 编辑:程序博客网 时间:2024/06/11 19:21

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

my:

class Solution {public:    vector<int> twoSum(vector<int>& nums, int target) {      vector<int>A(2);      for(int i=0;i<nums.size()-1;i++)          for(int j=i+1;j<nums.size();j++)          {              if(nums[i]+nums[j]==target)               {                  A[0]=i;                  A[1]=j;                  return A;              }          }        return A;    }};

naveed.zafar (leetcode)
Reputation: 259

vector<int> twoSum(vector<int> &numbers, 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 < numbers.size(); i++) {        int numberToFind = target - numbers[i];            //if numberToFind is found in map, return them        if (hash.find(numberToFind) != hash.end()) {                    //+1 because indices are NOT zero based            result.push_back(hash[numberToFind] + 1);            result.push_back(i + 1);                        return result;        }            //number was not found. Put it in the map.        hash[numbers[i]] = i;    }    return result;}