1. Two Sum

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。后面遍历的数组只需要在字典中匹配前面的数字中是否有符合目标的数字就可以了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,744评论 0 38
  • 感觉自己太水了,所以先定一个小目标,每天刷一道算法题。然后网站的话,就选择LeetCode了,顺便锻炼了英文水平了...
    做梦枯岛醒阅读 1,137评论 0 0
  • 题目 Given an array of integers, return indices of the two ...
    soleil阿璐阅读 1,014评论 0 0
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,478评论 0 23
  • 这一天,静谧而坦然,素雅而淡然,是真是假亦或真假交叉,只是我。 这一天,重拾旧笔,在此刻写下我的心情。 一直很喜欢...
    米德尔阅读 1,729评论 0 0