You need to enable JavaScript to run this app. 递归实现最小成本路径(MCP)结果异常,求代码错误排查
优惠活动
大模型
产品
解决方案
定价
更多

递归实现最小成本路径(MCP)结果异常,求代码错误排查

问题原因分析

你的代码核心错误是非法路径的边界返回值设置错误:
你把「列越界的非法不可走路径」和「已经走完所有行的有效结束路径」都统一返回0,相当于给不可走的路径赋予了0的极小成本,递归选最小值的时候会优先选这些根本不存在的非法路径,最终得到不符合要求的结果。
比如你得到的3,实际就是递归过程中选到了越界路径:2(A[0][1]) + 1(A[1][0]) + 0(c=-1越界返回值)= 3,这明显不是合法路径。

修复方案
  1. 拆分边界判断逻辑:
    • 当n >= max_n:已经遍历完所有行,属于路径正常结束,返回0
    • 当c < 0或c >= max_c:列越界,属于无效路径,返回无穷大float('inf')排除该路径
  2. 调用时传入起始坐标n=0、c=1即可得到正确结果。
修复后完整代码
def minSumRekursive_helper(A, n ,c):
    max_n = len(A)
    max_c = len(A[0])
    # 路径正常结束:已经走完所有行
    if n >= max_n:
        return 0
    # 路径非法:列越界
    if c < 0 or c >= max_c:
        return float('inf')
    minSum = min(
        minSumRekursive_helper(A, n+1, c-1),
        minSumRekursive_helper(A, n+1, c+1),
        minSumRekursive_helper(A, n+1, c)
    )
    total = A[n][c] + minSum
    return total

# 测试调用
A = [[6,2,4,1],
    [1,2,5,4],
    [2,7,3,2],
    [1,2,2,5],
    [9,5,1,6]]
print(minSumRekursive_helper(A, 0, 1)) # 输出7,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 22:15:07