1. Two Sum

2018-01-04  本文已影响0人  codingfish_

1. 题目

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

2. 答案

2.1 golang版

func twoSum(nums []int, target int) []int {
    temp := make(map[int]int)
    for index, value := range(nums){
        if result,ok := temp[target-value]; ok{
            return []int{result,index}
        } else{
            temp[value] = index
        }
    }
    return nil
}

2.2 python版

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        temp= {}
        for index, value in enumerate(nums):
            if target-value in temp.keys():
                return [temp[target-value], index]
            else:
                temp[value] = index

3. 分析

遍历整个数组,将已经遍历的数字做为key,索引做为value,存入map。后面遍历的数组只需要在字典中匹配前面的数字中是否有符合目标的数字就可以了。

上一篇 下一篇

猜你喜欢

热点阅读