题目介绍
说明
给定 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]
方法二:待更新
持续更新中。。。
感谢阅读!