我正在尝试在 leetcode 中使用 python 获取给定数组的主元索引。 对于给定一个整数数组 nums,计算该数组的主元索引。
这是我用过的代码
class Solution:
def pivotIndex(self, nums: List[int]) -> int:
if 1 <= len(nums) <= 104:
counter1 = 0
for i in range(len(nums)):
if -1000 <= nums[i] <= 1000:
counter1 += nums[i]
counter2 = 0
for j in range(i,len(nums)):
counter2+=nums[j]
if counter1 == counter2:
return i
else:
return -1
return -1
它适用于大多数用例,但我不明白为什么它在这个特定用例中不起作用。 这是我的提交(用例也存在于此)任何人都可以解释我做错了什么吗?
您正在检查输入列表的长度是否在
1
和 104
之间,但问题指定最大长度为 10 的 4 次方,即 10,000。因此,当长度大于 104 时,您将返回 -1
,而根本不尝试解决测试用例。
所以,应该是这样
if 1 <= len(nums) <= 10000:
这些问题的输入保证是有效的并且符合问题规范,所以你也可以去掉多余的检查。