首页 > 解决方案 > 最小路径总和中的 UnboundLocalError

问题描述

我试图在 leetcode 中解决这个问题。我是 leetcode 的新手。我收到 UnboundLocalError: local variable 'i' referenced before assignment。unboundlocalError 到底是什么意思?

class Solution:

    def minCostPath(self, arr):
        n = len(arr) # row 
        m = len(arr[0]) # colum
        dp = [[0 for i in range(n)] for j in range(m)]
        dp[0][0] = arr[0][0]
        for i in range(1, m):
            dp[i][0] = dp[i-1][0] + arr[i][0]
        for j in range(1, n):
            dp[0][j] = dp[0][j-1] + arr[0][j]
        for i in range(1, m):
            for j in range(1, n):
                dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + arr[i][j]

        return dp[i][j]

标签: pythonalgorithm

解决方案


长度为 1 的数组可能会发生这种情况。这是一个更简单的代码版本,它表现出同样的问题:

def func(length):
    for i in range(length):
        pass
    return i

现在考虑:

In [4]: func(1)
Out[4]: 0

In [5]: func(0)
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-5-ba0cd5a88f0a> in <module>
----> 1 func(0)

<ipython-input-3-d98b8e650438> in func(length)
      2     for i in range(length):
      3         pass
----> 4     return i
      5 

UnboundLocalError: local variable 'i' referenced before assignment

推荐阅读