首页 > 解决方案 > 我收到运行时错误 NZEC 请告诉我是什么问题

问题描述

我做了一个程序来找到矩阵路径的最大总和。您可以向下、向右或对角线,从 0,0 开始直到其右下角元素。

for z in range(int(input())):
   n,m = input().split(" ")
   n = int(n)
   m = int(m)
   arr = []
   ans = []
   for i in range(n):
      s = list(input().split(" "))
      s = list(map(int,s))
      arr.append(s)
      ans.append([0 for y in range(m)])
   for i in range(0,n,1):
      for j in range(0,m,1):
         if i==0 and j==0:
            ans[i][j] = arr[i][j]
         elif i==0 and j!=0:
            ans[i][j] = ans[i][j-1] + arr[i][j]
         elif j==0 and i!=0:
            ans[i][j] = ans[i-1][j] + arr[i][j]
         else:
            ans[i][j] = max(ans[i-1][j],ans[i-1][j-1],ans[i][j-1]) + arr[i][j]        
  print(ans[n-1][m-1])            

标签: pythondynamicruntime-error

解决方案


代码在 python 中,因此它应该有适当的缩进,否则你会得到一个错误。

出现 NZEC 错误的可能原因:

  1. 无限递归——或者如果你的堆栈内存用完了。

  2. 确保您的输入和输出与测试用例完全相同。建议使用将您的输出与指定输出完全匹配的计算机代码来测试您的程序。

  3. 出现此错误的另一个常见原因是您犯了基本的编程错误,例如除以 0。

  4. 检查变量的值,它们可能容易受到整数流的影响。

  5. 直接尝试计算 20 以上的阶乘,如果你是 - 找到另一种方法来做到这一点。

  6. NZEC 错误是运行时错误,主要发生在访问负数组索引时。

有关更多信息,您可以在此处查看

检查边缘情况,您可能正在访问具有负索引的数组。

我希望它有所帮助。


推荐阅读