explorer_a 2022-12-23 22:56 采纳率: 100%
浏览 23
已结题

python代码问题

在力扣上刷算法题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

    

执行后的结果打印时候,一直都没解决好,上述代码执行后结果为:

img


就是打印的结果为什么是交替执行的?

还有一个问题就是如果我把上面没用的fun函数去掉后,直接报这个错,又是什么问题呢

img

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-12-24 00:54
    关注

    你只要看print语句在哪里就明白了呀,你的fun函数首先就被print调用了一下,给了maxval初始值1,然后在dfs里,print被调用了两次,然后每次递归dfs,都会print两次,所以结果是交替打印的啊。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 cs loadimage运行不了,easyx也下了,没有用
  • ¥15 r包runway详细安装教程
  • ¥15 Html中读取Json文件中数据并制作表格
  • ¥15 谁有RH342练习环境
  • ¥15 STM32F407 DMA中断问题
  • ¥15 uniapp连接阿里云无法发布消息和订阅
  • ¥25 麦当劳点餐系统代码纠错
  • ¥15 轮班监督委员会问题。
  • ¥20 关于变压器的具体案例分析
  • ¥15 生成的QRCode圖片加上下載按鈕