LeetCode-1 两数之和(python3)

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

这里采用一遍hash的方式:

新建一个空的字典,然后遍历数组,如果target-x在字典里面,则返回x和target-x的索引值,如果不在则将该数值加入字典中。

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        hash_map = dict()
        for i, x in enumerate(nums):
            if target - x in hash_map:
                return [i, hash_map[target-x]]
            hash_map[x] = i
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,926评论 0 10
  • <center>#1 Two Sum</center> link Description:Given an arr...
    铛铛铛clark阅读 2,253评论 0 3
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,910评论 2 16
  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,485评论 0 1
  • 已经好久没有写文章了,主要是这几天比较忙,下班也特别晚,洗洗漱漱磨叽磨叽也就睡觉了,时间总觉得不够用,每天都比较充...
    南溪_e428阅读 190评论 0 1