在力扣上刷算法题python代码的问题(力扣1799)
如下代码:
class Solution:
def maxScore(self, nums: List[int]) -> int:
def gcd(x,y):
return x if y == 0 else gcd(y,x%y)
max_val = 0
def fun():
global max_val
max_val = 1
return max_val
print(fun())
def dfs(line,list,pos,res,max_list):
if line == len(list):
if len(res) == 3:
global max_val
print(max_val)
if sum(res)>max_val:
max_val = sum(res)
max_list[:] = res
max_list.append(max_val)
print(res,pos,max_val,max_list)
return
for i in range(0,len(list[line])):
if line+i+1 not in pos and line not in pos :
pos.append(i+line+1)
pos.append(line)
res.append(list[line][i])
dfs(line+1,list,pos,res,max_list)
pos.remove(i+line+1)
pos.remove(line)
res.remove(list[line][i])
dfs(line+1,list,pos,res,max_list)
list = []
for i in range(0,len(nums)):
if i+1<len(nums):
list.append([])
for j in range(i+1,len(nums)):
list[i].append(gcd(nums[i],nums[j]))
print(list)
ma_list = []
dfs(0,list,[],[],ma_list)
goal = 0
# ma_list.sort()
print(ma_list)
for i in range(0,len(ma_list)):
goal += (i+1)*ma_list[i]
return goal
执行后的结果打印时候,一直都没解决好,上述代码执行后结果为:
就是打印的结果为什么是交替执行的?
还有一个问题就是如果我把上面没用的fun函数去掉后,直接报这个错,又是什么问题呢