[英]How to modify a filepath in Python code so that it works on other computers?
[英]How should I modify my code so that twosum function works?
问题出在 Leetcode 中,它是:
给定一个整数数组 nums 和一个整数目标,返回两个数字的索引,使它们相加为目标。 每个输入将只有一个解决方案,并且您不能两次使用相同的元素。
这是我用于此练习的代码。
def twoSum(nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(1,len(nums)):
if nums[i]+nums[j]==target:
return i,j
return i,j
twoSum([8,3,7,9,2],9)
#Result: (0, 4)
输出不正确,因为8+2=10
( nums[0] + nums[4]
) 不等于 9。
为什么会发生这种情况?
您的代码有两个问题:
return
将在外循环的第一次迭代结束时返回。 由于 i 仍为 0 并且 j 一直到len(nums) - 1
,因此结果为 (0, 4) 。 删除它应该可以解决这个问题。一个可能的解决方案如下所示:
def twoSum(nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i]+nums[j] == target:
return i,j
return -1, -1
-1, -1 只有在没有解决方案时才会出现。 由于问题中指出始终只有一个解决方案,因此永远不会发生这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.