Leetcode_01 Add Two

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

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

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


详解:

使用字典存放数据项和对应数组位置
遍历时若找到差值就返回字典中对应数据的位置和现在遍历到的数据位置

复杂度分析:

时间复杂度:O(n):有两次遍历查询,数组遍历O(n),哈希表遍历O(1),

空间复杂度:O(n):需要的额外空间取决于在哈希表中存放数据的大小

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        hashtable = dict()
        for i,num in enumerate(nums):
            v = target-num #计算差值,在hashtable中查找是否存在
            if v in hashtable:
                return [hashtable[v],i]
            else:#不存在就将数据存放到hashtable中
                hashtable[num]=i
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 4,850评论 0 4
  • 在讲解HashMap集合之前,我们先说说一个重要的数据结构---哈希表。哈希表是一种非常优秀数据结构,对哈希表进行...
    wo883721阅读 7,883评论 4 13
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 4,268评论 0 3
  • 约上我的小狮子去看电影~
    不响和狂响阅读 1,436评论 0 0
  • Dear Yoyo: 出差了5、6天,一回到家看到你,我的直觉告诉我,你貌似又长高了一点。赶紧把你拉到我胸前用手与...
    林春生阅读 2,372评论 3 2