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

Codewars区间求和问题:我的Python代码未通过部分测试用例,求排查

区间求和函数代码问题排查

我将以下sum_of_intervals函数提交到区间求和题目中,但部分测试用例未通过,无法定位问题,请求协助排查:

def sum_of_intervals(intervals):
    new_arr = []
    ans = 0
    re_arr=sorted(intervals)
    # Find overlapping arrays
    arr = re_arr.pop(0)
    for i in range(len(intervals)):
        if i == len(intervals)-1: # To append the last value into the new_array
            new_arr.append(arr) 
            break
        for arrays in re_arr:
            if arr[1] >= arrays[0]: # Overlapping arrays
                arr=[min(arr[0],arrays[0]),max(arr[1],arrays[1])]
                re_arr[0] = arr
            else: # Not overlapping
                new_arr.append(arr)
                arr = re_arr.pop(0)
    # remove repetitive numbers
    final_arr = []
    for i in new_arr:
        if i not in final_arr:
            final_arr.append(i)
            ans += i[1]-i[0]
    return final_arr,ans

问题分析

  • 嵌套循环逻辑混乱:外层for i in range(len(intervals))完全冗余,内层for arrays in re_arr会重复遍历剩余区间,导致合并逻辑出错。比如修改re_arr[0]后,内层循环仍会遍历后续元素,引发错误的合并或重复添加操作。
  • 区间合并逻辑漏洞:当检测到重叠区间时,仅修改re_arr[0]但未移除当前处理的arrays,会导致后续重复处理同一区间,无法完成完整的合并。
  • 多余的去重步骤:排序并正确合并后的区间必然互不重叠且无重复,if i not in final_arr的判断既低效又多余,还可能因逻辑错误导致的异常重复区间误判。
  • 返回值不符合要求:题目要求返回区间的总长度,但当前函数返回的是(final_arr, ans)元组,直接导致测试用例不通过。

修正后的代码示例

def sum_of_intervals(intervals):
    if not intervals:
        return 0
    # 按区间左端点排序
    sorted_intervals = sorted(intervals)
    merged = [sorted_intervals[0]]
    for current in sorted_intervals[1:]:
        last = merged[-1]
        # 检查是否重叠或相邻
        if current[0] <= last[1]:
            # 合并区间:更新右端点为较大值
            merged[-1] = (last[0], max(last[1], current[1]))
        else:
            merged.append(current)
    # 计算总长度
    return sum(end - start for start, end in merged)

修正说明

  • 移除冗余嵌套循环,通过一次遍历完成区间合并
  • 正确处理合并逻辑:每次仅与最后一个已合并区间比较,重叠则更新右端点,不重叠则添加新区间
  • 删除多余去重步骤,排序合并后无重复区间
  • 返回值改为题目要求的区间总长度,而非元组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:35:21