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

如何计算元组各元素的最小差值并解决遍历的索引越界问题

问题原因

  • 索引越界根源:你在循环中访问了novo_t[i + 2],循环范围是range(len(novo_t) - 1),当i取最大值len(novo_t)-2时,i+2等于元组长度,超出了元组索引的合法范围(元组索引从0开始,最大值为len(novo_t)-1)。
  • 逻辑冗余问题:排序后的序列求最小相邻差值,仅需要依次计算相邻两个元素的差值、记录最小值即可,不需要同时对比三组元素,你代码里的counter变量和循环变量i功能重复,逻辑存在错误。

修正后代码

def seg(t):
    # 直接将元组按降序排序
    novo_t = sorted(t, reverse=True)
    # 初始化最小差值为第一个相邻对的差值
    min_diff = novo_t[0] - novo_t[1]
    # 遍历所有相邻元素对
    for i in range(len(novo_t) - 1):
        current_diff = novo_t[i] - novo_t[i + 1]
        # 如果当前差值更小,更新最小差值
        if current_diff < min_diff:
            min_diff = current_diff
    return min_diff

效果验证

输入测试用例seg((2223,424,1316,99)),执行后返回值为325,符合预期结果。

内容的提问来源于stack exchange,提问作者João

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:30:04