我目前正在Leetcode上解决第1个问题,名为“Two Sum”。
给定一个整数数组,返回两个数的索引,使它们相加等于特定目标值。
你可以假设每个输入都只有一种解决方案,并且不能重复使用相同的元素。
例如,给定nums=[2,7,11,15]和target=9,因为nums [0]+nums[1]=2+7=9,所以返回[0,1]。
我的代码是:
给定一个整数数组,返回两个数的索引,使它们相加等于特定目标值。
你可以假设每个输入都只有一种解决方案,并且不能重复使用相同的元素。
例如,给定nums=[2,7,11,15]和target=9,因为nums [0]+nums[1]=2+7=9,所以返回[0,1]。
我的代码是:
def twosum_indices(nums, target):
for i in nums:
for v in nums[i + 1:]:
if i + v == target:
return nums.index(i), nums.index(v)
在这个问题中,nums是一个整数列表,程序必须返回两个不同的索引列表,使它们的真实值加起来等于给定的目标值。虽然这在大多数测试用例中都很好用,但是在像[3,3]这样的列表中,两个值相同,程序会返回两次相同的索引,如[0,0],而不是返回实际答案[0,1]。为什么会出现这种情况呢?
dict
,遍历序列并将索引添加到dict
中,对于 seq 中的每个元素,检查其补数是否在dict
中。 - juanpa.arrivillaga