You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode 1588题:奇数长度子数组求和代码错误排查求助

排查LeetCode 1588. Sum of All Odd Length Subarrays代码错误

题目描述

给定正整数数组arr,返回所有可能的奇数长度子数组(子数组为数组的连续子序列)的和。

我的尝试代码

class Solution:
    def sumOddLengthSubarrays(self, arr: List[int]) -> int:
        sub_array_size = 1
        odd_array_sum = 0
        index = 0
        while sub_array_size <= len(arr):
            for element in arr:
                index = arr.index(element)
                if index <= (len(arr) - sub_array_size):
                    for i in range(sub_array_size):
                        odd_array_sum += arr[index + i]
                else:
                    continue
            
            sub_array_size += 2
        
        return odd_array_sum

问题现象

这段代码在部分测试用例中可行,但多数用例失败,例如输入arr = [7, 6, 8, 6]时结果出错。

我的思路

  • 从长度为1的子数组开始,每次将子数组长度增加2,直到长度超过原数组长度为止。
  • 遍历数组中的每个元素,若当前元素的索引足够小(能生成对应奇数长度的子数组),就把该子数组的所有元素累加到总和里;否则跳过。
  • 考虑过把else里的continue改成break来优化性能——因为当某个元素的索引不符合条件时,后面元素的索引肯定也不符合,但不确定break会不会跳过sub_array_size += 2的执行,所以暂时保留了continue。

我无法找出代码错误所在,希望排查问题而非直接获取解决方案。


内容的提问来源于stack exchange,提问作者idk31909310

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:32:33