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

Python校验超递增序列代码结果不符合预期如何修正?

超递增序列校验代码修复方案

问题原因

你当前的代码存在两个逻辑错误,导致结果不符合预期:

  • 多余的严格递增校验:第一个any判断要求序列每个元素严格大于前一个元素,这是完全不必要的限制。超递增序列仅要求元素大于前面所有元素总和,不需要大于上一个元素,比如你给出的示例(-1, 0, 0, 1)里第三个元素0等于第二个元素0,但它大于前面所有元素总和-1+0=-1,符合超递增规则,却被你的第一层判断直接过滤掉了。
  • 仅校验前两个元素和:第二层all判断仅要求当前元素大于前两个元素的和,而非大于前面所有元素的和,遇到长序列时会出现逻辑错误,比如序列[1,2,4,7],你现有代码会判定为符合要求,但实际前面三个元素总和为7,第四个元素7不大于总和,不属于超递增序列。

修复后的实现代码

def super_increasing(seq):
    # 长度为0或1的序列默认符合超递增规则(无需要校验的元素)
    if len(seq) <= 1:
        return True
    # 维护前面所有元素的累加和
    prev_sum = seq[0]
    for num in seq[1:]:
        if num <= prev_sum:
            return False
        prev_sum += num
    return True

测试验证

你给出的所有测试用例运行结果如下:

  • (1, 3, 5, 7, 19) → 返回False,符合预期
  • [1, 3, 5, 11, 21] → 返回True,符合预期
  • [0, 0, 1, 2] → 返回False,符合预期
  • (-1, 0, 0, 1) → 返回True,符合预期
  • (1, 2, 0, 4) → 返回False,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:24:02