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

如何基于递增序列提取区间,忽略左重叠并合并右重叠?

问题:提取并合并符合规则的递增序列区间

示例输入

mylist = [2, 7, 8, 11, 7, 9, 10, 15, 22, 30, 32]

规则说明

  • 从2到11为递增序列,需提取其最小最大值组成区间[2, 11]
  • 从7到10为递增序列,但该区间(7到10)包含于已提取的第一个区间,故忽略
  • 从15到32为递增序列,提取其最小最大值组成区间[15, 32]

最终结果应为:[[2, 11], [15, 32]]

尝试的代码

final = []
mi = mylist[0]
ma = mylist[1]

for i, j in zip(mylist, mylist[1:]):

    if i < j:
        ma = j
    elif i > j:
        mi = i
        continue
            
    elif mi == ma:
        continue
    final.append([mi, ma])

补充场景说明

  • 对于列表[5, 8, 10, 3, 4, 5, 7],结果应为[[5,10]],因[3, 7]的起始点在[5, 10]之后,即使重叠也忽略
  • 对于列表[5, 8, 10, 8, 9, 12],结果应为[[5,12]],即[5,10] ∪ [8, 12],因[8, 12]与[5, 10]右重叠,需合并
  • 对于列表[1, 3, 5, 4, 3, 2, 1],结果应为[[1, 5]],因4到1为递减序列,需忽略

需求

不需要Python代码,仅需解决该问题的算法或正确思路。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:32:38