Python 该值未得到更新,但如何修改以获得更新?
我一直在尝试使用dfs方法解决python中的最大孤岛数问题 方法是正确的,但是值c没有得到更新,所以我的问题是如何修改这段代码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,
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不同的整数?彼得伍德,你能再解释一下吗