LeetCode_Python刷题:1.两数相加

LeetCode:1.两数相加

题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:给定 nums = [2, 7, 11, 15], target = 9
返回:[0, 1]
为了测试代码是否重复利用数组元素,增加一个给定:nums = [0, 3, 4, 0],target =0
返回:[0, 3]

代码如下:

returnNums = []
nums = [int(t) for t in input("请输入一组整数数组,以空格分开:").split()]
target = int(input("请输入目标值:"))
for i in nums:
	nums_index = nums.index(i)
	for t in nums[nums_index+1:]:
		if t + i == target and len(returnNums) != 2:
			returnNums.append(nums.index(i))
			returnNums.append(nums[nums_index+1:].index(t) + (nums_index+1))
print("返回值:",returnNums)

编译结果:

请输入一组整数数组,以空格分开:2 7 11 15
请输入目标值:9
返回值: [0, 1]

请输入一组整数数组,以空格分开:0 3 4 0
请输入目标值:0
返回值: [0, 3]

注意点:
①先把按一定格式输入的数,储存到列表里面(这里是nums)。
②利用for循环遍历列表,因为两数相加,需要遍历两次,但是第二次可以从第一次的索引后开始遍历。因为:a+b=b+a,num[0]+num[1]=num[1]+num[0]。这样可以减少不必要的时间。
③最后返回的是索引不是索引对应的值,所以需要利用index()。
④对于t的索引,我们是从“新”列表的起始位置开始遍历,所以利用index找t值对应的索引,需要从“新”列表(nums[nums_index+1:])开始寻找。但是最终返回的索引值是针对“原”列表,所以需要加上(nums_index+1)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值