Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 该值未得到更新,但如何修改以获得更新?_Python_Function_Recursion_Return Value_Depth First Search - Fatal编程技术网

Python 该值未得到更新,但如何修改以获得更新?

Python 该值未得到更新,但如何修改以获得更新?,python,function,recursion,return-value,depth-first-search,Python,Function,Recursion,Return Value,Depth First Search,我一直在尝试使用dfs方法解决python中的最大孤岛数问题 方法是正确的,但是值c没有得到更新,所以我的问题是如何修改这段代码 def dfs(island,i,j,c): if i<0 or i>len(island)-1 or j<0 or j>len(island[0])-1 or island[i][j]!=1: return island[i][j]=2 c=c+1 dfs(island, i, j+1,

我一直在尝试使用dfs方法解决python中的最大孤岛数问题

方法是正确的,但是值c没有得到更新,所以我的问题是如何修改这段代码

    def dfs(island,i,j,c):
    if i<0 or i>len(island)-1 or j<0 or j>len(island[0])-1 or island[i][j]!=1:
        return
    island[i][j]=2
    c=c+1
    dfs(island, i, j+1, c)#r
    dfs(island, i, j-1, c)#l
    dfs(island, i-1, j, c)#t
    dfs(island, i+1, j, c)#d
    dfs(island, i-1, j+1, c)#rvu
    dfs(island, i-1, j-1, c)#lvu
    dfs(island, i+1, j+1, c)#rvd
    dfs(island, i+1, j-1, c)#lvd



island=[[1,1,1,0],[0,0,1,0],[0,0,0,1]]
total=0
for i in range(len(island)):
    for j in range(len(island[0])):
        if island[i][j]==1:
            c=0
            dfs(island,i,j,c)
            total=max(total,c)

print(total)

您可能需要将c的值返回给调用函数,以便它可以再次使用它。整数是不可变的,因此当您递增c时,实际上是在告诉c指向另一个整数。这意味着外部作用域中的c指向与内部作用域中的c不同的整数?彼得伍德,你能再解释一下吗