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

如何编写Python函数提取数字列表中符合递增规则的元素序列

现有代码错误点
  • 你使用for i in L遍历得到的i是列表的元素值而非索引,直接用L[i+1]取值会把元素值当索引调用,只要元素值大于等于列表长度就会触发索引越界。
  • 列表append方法是原地操作,返回值为None,执行a = a.append(L[i])会直接将a覆盖为None,后续无法正常添加元素。
  • 没有处理遍历边界:遍历到列表最后一个元素时,不存在i+1对应的元素,必然会触发越界。
  • 判断逻辑和需求不符:你当前的判断条件要求相邻元素差值严格为2,但你给出的示例中3和4差值为1也符合要求,说明需要调整判断逻辑为后一个元素大于前一个元素即可。
正确实现

我们通过维护当前连续递增序列和最长递增序列的方式实现,代码如下:

def numIncreasing1(L):
    # 处理空列表边界
    if not L:
        return []
    max_sequence = current_sequence = [L[0]]
    for num in L[1:]:
        if num > current_sequence[-1]:
            current_sequence.append(num)
            # 更新最长序列
            if len(current_sequence) > len(max_sequence):
                max_sequence = current_sequence.copy()
        else:
            # 不满足递增则重置当前序列
            current_sequence = [num]
    return max_sequence

如果你确实需要相邻元素严格递增2的逻辑,只需要将判断条件num > current_sequence[-1]修改为num == current_sequence[-1] + 2即可。

验证

输入示例[5, 2, 1, 3, 4]调用该函数,返回结果为[1, 3, 4],符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:00