Two sum

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.

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.
Subscribe to see which companies asked this question.

code:

way:

class Solution(object):
    def twoSum(self, nums, target):
    d={}
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for i,v in enumerate(nums):
            if target-v in d:
                return [d[target-v],i+1]
        d[v]=i+1

other way:

class Solution(object):
    def twoSum(self,nums,target):
    hash={}                         #用于建立数值到下标的映射

               """
               :type nums: List[int]
               :type target: int
               :rtype: List[int]
               """
               for i in range(len(nums)):
                    if target-nums[i] in hash:
                        returm [hash[target-num[i]], i]
                    hash [nums[i]]=1

               return [-1,-1]               #无解的情况
原文地址:https://www.cnblogs.com/lingan-hong/p/6403977.html