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

Python暴力法求解连续子数组最大和代码错误排查

错误原因

  • 核心问题是max_sum初始值设置错误:你当前把初始值设为0,而你提供的测试数组所有元素均为负数,所有连续子数组的和都是负数,没有任何一个能大于0,所以代码最终会错误返回0。而常规的连续子数组最大和问题要求子数组至少包含1个元素,这种全负数组的正确结果应该是数组中最大的单个元素,也就是-3。
  • 额外优化点:可以补充空数组的边界判断,避免输入为空时报错。

修正后代码

a = [-13, -3, -25, -20, -3, -16, -23, -12, -5, -22, -15, -4, -7]

def max_Summ(a):
    # 空数组特殊处理
    if not a:
        return 0
    # 初始值改为数组第一个元素,适配全负场景
    max_sum = a[0]
    k = 0
    for i in a:
        temp_sum = 0
        for j in a[k::]:
            temp_sum += j
            if temp_sum > max_sum:
                max_sum = temp_sum
        k += 1
    return max_sum
print(max_Summ(a))

运行修正后的代码会输出-3,符合预期。

注:如果业务场景允许选取空数组作为子数组,此时空数组和为0是正确结果,无需修改初始值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:09:03