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

Python 3.7.3 提取序列递增元素时无法加入最后一个符合条件元素问题

问题修复说明

核心问题

  • 你的判断逻辑仅会将满足当前元素 < 下一元素的当前元素加入列表,而递增段的最后一个元素(示例中的4)因为比后续元素3大,不会触发加入逻辑,因此被遗漏。
  • for循环体内的index = index + 1是无效操作:for循环的迭代变量每次都会被range生成的下一个值自动覆盖,这行代码不会改变循环的迭代顺序,可以直接删除。

修复后代码

def max_increase(seq):
    if not seq:
        return []
    current_seq = []
    max_long_seq = []
    for num in seq:
        if not current_seq or num > current_seq[-1]:
            current_seq.append(num)
            # 实时更新最长递增序列
            if len(current_seq) > len(max_long_seq):
                max_long_seq = current_seq.copy()
        else:
            # 递增中断,重置当前序列
            current_seq.clear()
            current_seq.append(num)
    return max_long_seq

逻辑说明

  1. 初始化两个列表,current_seq用来记录当前正在遍历的递增段,max_long_seq用来保存遍历过程中找到的最长递增段
  2. 逐个遍历输入序列的元素:
    • 如果当前段为空,或者当前元素大于当前段最后一个元素,说明满足递增条件,加入当前段
    • 否则说明递增中断,清空当前段后将当前元素作为新段的起始
    • 每次加入元素后检查当前段长度,如果超过已记录的最长段长度,就更新最长段
  3. 遍历结束后返回最长递增段即可,针对你的测试用例[5,1,2,4,3]会直接返回[1,2,4],符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:24:03