📣 独立日限时特惠: VIP通行证立减$68
查看: 2210| 回复: 13
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 打滚求问一个python的问题~~

全局:

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

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

x
今天在做leetcode时用递归写了一下N Queens
一开始的dfs代码有问题:
def dfs(depth,valuelist):
            if depth==n:
                ans.append(valuelist)
                return
            for i in range(n):
                if check(depth,i):
                    board[depth]=i
                    s='.'*n
                    valuelist=valuelist+[s[:i]+'Q'+s[i+1:]]
                    depth=depth+1
                    dfs(depth,valuelist)
                    #dfs(depth+1,valuelist+[s[:i]+'Q'+s[i+1:]])
然后我把井号前三行删去,换成井号的那行代码就OK了
这是为什么啊
lz刚用python不到一个月,求指教

上一篇:<广告>leetcode刷题视频+思路分享
下一篇:Cracking The Coding Interview以及Javascript的入门学习资料
推荐
magicsets 2017-7-21 02:01:58 | 只看该作者
全局:
这里举个例子简化一下你程序里的问题。

考虑下面两组程序,它们输出一样吗——如果不一样,那是为什么?
(1)
  1. def f(x):
  2.   print x

  3. depth = 0
  4. for i in range(8):
  5.   f(depth + 1)
复制代码


(2)
  1. def f(x):
  2.   print x

  3. depth = 0
  4. for i in range(8):
  5.   depth = depth + 1
  6.   f(depth)
复制代码

回复

使用道具 举报

推荐
waterbucket 2017-7-20 22:45:10 | 只看该作者
全局:
跟python没关系,你递归没学好,比如你把depth改了,本层循环下一次就错了
回复

使用道具 举报

🔗
leonardcohen 2017-7-20 22:50:00 | 只看该作者
全局:
waterbucket 发表于 2017-7-20 22:45
跟python没关系,你递归没学好,比如你把depth改了,本层循环下一次就错了

any details?
And how to learn iteration well?
Thanks.
回复

使用道具 举报

🔗
limuzi0609 2017-7-21 03:03:11 | 只看该作者
全局:
magicsets 发表于 2017-7-21 02:01
这里举个例子简化一下你程序里的问题。

考虑下面两组程序,它们输出一样吗——如果不一样,那是为什么? ...

第一个depth一直是0对吧 print也一直print 1
回复

使用道具 举报

🔗
dukecat0613 2017-7-21 03:13:16 | 只看该作者
全局:
waterbucket 发表于 2017-7-20 22:45
跟python没关系,你递归没学好,比如你把depth改了,本层循环下一次就错了

同意 这无关乎Py 在于recursion 参数传递的时候出错 说到底就是对递归理解的不透彻
回复

使用道具 举报

🔗
magicsets 2017-7-21 03:39:29 | 只看该作者
全局:
limuzi0609 发表于 2017-7-21 03:03
第一个depth一直是0对吧 print也一直print 1

是的~

第二个呢,和第一个是不是不一样

然后你再看看之前的N Queens里的代码
回复

使用道具 举报

🔗
Linzertorte 2017-7-21 03:47:23 | 只看该作者
全局:
因为啊你的for循环会对value和depth造成累加伤害啊。。这不是python的问题。。这是逻辑的问题。
回复

使用道具 举报

🔗
Linzertorte 2017-7-21 03:49:07 | 只看该作者
全局:
可以看出,python并不适合你,魔法太多了。还是从C学起吧。
回复

使用道具 举报

🔗
 楼主| evanescent_lizy 2017-7-21 23:42:08 | 只看该作者
全局:
受教了,谢谢各位
回复

使用道具 举报

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

本版积分规则

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