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

如何将给定整数区间切分为连续无重叠等大小子区间,解决边界重合问题

区间切分无重叠问题解决方案

你当前代码的问题是子区间左边界计算逻辑导致边界重叠:所有子区间左边界直接按步长累加,和前一个区间的右边界数值完全相等。仅需要调整左边界的计算规则,首个区间左边界保持原始起始值,后续所有区间左边界在原计算逻辑基础上加1即可,完全不需要修改原有参数的使用方式。

修改后的代码如下:

def range_non_overlapping(range_left, range_right, range_per_cut, cut_num):
    ranges = []
    for i in range(cut_num):
        # 仅调整左边界计算:非首个区间左边界+1避免重叠
        current_left = range_left + i * range_per_cut if i == 0 else range_left + i * range_per_cut + 1
        # 右边界逻辑保持原有规则,避免超出总区间范围
        current_right = min(range_right, range_left + (i + 1) * range_per_cut)
        ranges.append(current_left)
        ranges.append(current_right)
    return ranges

效果验证

调用range_non_overlapping(40, 260, 55, 4),返回结果为[40, 95, 96, 150, 151, 205, 206, 260],和你预期的输出完全一致。

内容的提问来源于stack exchange,提问作者H.Jamil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:36:08