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

返回列表中各连续递增分组首元素的所有索引

连续递增序列起始索引查找实现

需求说明

查找列表中所有连续递增(相邻元素差值为1)数值序列的起始索引。

  • 测试输入:lst = [0,1,2,7,8,9]
  • 预期输出:[0,3]

实现方案(Python)

def get_sequence_start_indexes(input_list: list[int]) -> list[int]:
    # 空列表直接返回空结果
    if not input_list:
        return []
    start_indexes = [0]
    # 从第二个元素开始遍历判断
    for idx in range(1, len(input_list)):
        # 不满足连续递增规则时,当前索引就是新序列起点
        if input_list[idx] != input_list[idx-1] + 1:
            start_indexes.append(idx)
    return start_indexes

# 验证示例
if __name__ == "__main__":
    test_lst = [0,1,2,7,8,9]
    print(get_sequence_start_indexes(test_lst))  # 输出: [0, 3]

逻辑解释

  • 列表首元素必然是第一个连续序列的起点,直接初始化到结果列表中
  • 遍历过程中只要发现当前元素和前一个元素的差值不是1,就说明连续序列在此处断裂,当前位置是下一段连续序列的起点
  • 算法时间复杂度为O(n),仅需一次遍历即可得到结果,空间复杂度为O(k),k为列表中连续递增序列的段数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 09:54:30