LeetCode刷题 001 两数之和

题目介绍

说明

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

方法一:哈希字典

解题思路

我们首先创建一个空字典
遍历两数之差 target - num,这里的num是列表中的数字。如果结果在字典中就return这个值,如果不在,就记录进入字典。

代码示例

class solution(object):
    def two_sums(self, target, nums):
    """
    :type nums: List[int]
    :type target: int
    :rtype: List[int]
    """
        empty = {}
        for i, num in enumerate(nums):
            if target - num in empty:
                return [empty[target-num], i]
            else:
                empty[num] = i

target = eval(input("The input target number is:"))
b = input("Please input a set of number, using ',' to split:").split(",")
nums = [int(b[i]) for i in range(len(b))]
      
if __name__ == "__main__":
    a = solution()
    print(a.two_sums(target, nums))
            

举例

target = 9, nums = 3,4,5,6
注意,我这里nums的输入格式直接是数字加逗号隔开就行,这样输入我已经直接将它转成列表

输出结果

[1,2]

方法二:待更新

持续更新中。。。

感谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值