leetcode--两数之和--python

题目

题目详情

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

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

示例

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

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

解题代码

代码

class Soultion:
	def twoSum(self,nums, target):
		hashmap ={}
		for index, num in enumerate(nums):
			another_num = target - num
			if another_num in hashmap:
				return [hashmap[another_num], index]
			hashmap[num] = index
		return None

if __name__ == '__main__':
	list = [2,0,5,7,3,9]
	target = 8
	obj = Soultion()
	obj.twoSum(list,target)

运行结果

在这里插入图片描述

体会

在这个过程中运用那个了字典的enumerate方法,能够很好的解决下标和值的一个表示。也可以用循环的方法:

hashmap = {}
for i in range(0,len(nums)):
	another_num = target - num
	if another_num in hashmap:
		return [hashmap[another_num], i]
	hashmap[num] = i

猜你喜欢

转载自blog.csdn.net/qq_39722988/article/details/89093736