查看: 219|回复: 3
收起左侧

[Leetcode] DFS传入参数问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

|只看干货
ATPtennis | 显示全部楼层 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   93% (28)
 
 
6% (2)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
我发现有时比如题目给的定义里面有的参数,我自己定义def dfs时,不把题目给定义的参数传进去,用的时候直接用,也是能够运行成功的。

可是我看讨论区的答案基本都是把题目给的参数又传一遍进自己的dfs函数,这些参数在dfs里并没有改变,只是需要用的时候,拿出来用一下,本身
dfs递归里传进下一层的参数也根本不变。请问这样再写一遍是有什么特殊用处吗?





补充内容 (2021-09-19 01:34 +8:00):
比如Path Sum ii 这道题,传不传targetSum这个参数进定义的dfs函数,不影响最终结果,加不加这个参数都行。但是我看讨论区普遍都加这个参数,有什么特殊原因吗?Python的

评分

参与人数 1大米 +3 收起 理由
14417335 + 3

查看全部评分


上一篇:Leetcode Student Premium
下一篇:请教一题LC 200的题,Java
fropen 2021-9-19 02:45:31 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (62)
 
 
0% (0)    👎
没有影响,因为你的pathsum已经是成员变量了。如果不是呢?如果你的dfs函数不能直接访问pathsum,就只能传进去了。

补充内容 (2021-09-19 02:45 +08:00):
targetSum

补充内容 (2021-09-19 02:49 +08:00):
有的递归时targetSum会先减去当前值再传下去,这时肯定需要这个参数的。你贴代码吧,也不知猜的对不对

评分

参与人数 1大米 +1 收起 理由
14417335 + 1

查看全部评分

回复

使用道具 举报

 楼主| ATPtennis 2021-9-19 05:57:34 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   93% (28)
 
 
6% (2)    👎
fropen 发表于 2021-9-18 20:45
没有影响,因为你的pathsum已经是成员变量了。如果不是呢?如果你的dfs函数不能直接访问pathsum,就只能传 ...

class Solution:
    def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]:
        
        def dfs(root, summ, lis):
            if not root:
                return
            
            summ += root.val
            lis.append(root.val)
            if not root.left and not root.right and summ == targetSum:
                result.append(copy.deepcopy(lis))
               
            dfs(root.left, summ, lis)
            dfs(root.right, summ, lis)
            
            lis.pop()
        
        result = []
        dfs(root, 0, [])
        return result

比如以上代码,我不传targetSum进dfs,依然运行成功。我知道有改变的时候一定要设置一个参数,对于这种在1dfs过程中没有改变的参数,我看到讨论区的答案,都是把它也当参数传进去了。这里面有没有什么说法,比如要严格按照函数定义之类的,或者代码规范之类的。
回复

使用道具 举报

fropen 2021-9-19 06:45:56 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (62)
 
 
0% (0)    👎
他们可能定义的不是你这种内嵌函数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表