为了账号安全,请及时绑定邮箱和手机立即绑定
第三个月开始生兔子是 f(n) = f(n-1) +f(n-2)
低四个月开始生兔子是f(n) = f(n-1) + f(n-3)
"""
爬n级楼梯的方式
"""
l = []
def up_stair(n, process=""):
if n == 1:
l.append(process + ">1")
if n == 2:
l.append(process + ">1>1")
l.append(process + ">2")
if n > 2:
up_stair(n - 1, process + ">1")
up_stair(n - 2, process + ">2")

up_stair(2)
print(len(l))
不用depth , 递归过程就是datas变小的过程,最终变成空数组。 代码给到下面,感觉这样更好理解
def search(datas):
if not datas:
print(arranges)
global total
total += 1
else:
for data in datas:
arranges.append(data)
next_datas = datas[:]
next_datas.remove(data)
search(next_datas)
arranges.pop()
老师讲解的非常通俗易懂,总算是理解动态规划了,谢谢老师。

最新回答 / 慕仰1355216
是的,这一点老师写错了,但是推演到下一个写法的时候,这个错误就不重要了,因为中间阶段的写法本来就是过度的。
13:00的地方,total += 1 这个应该放到 if 前面
把depth做成一个递减的变量最后判断==0会更容易理解,要不然==4会很突兀。
# 判断/方向
for i in range(x):
if y + 1 + i <= 7:
if board[x - 1 - i][y + 1 + i] == 1: # 不判断当前点
return False

# 判断\方向
for i in range(x):
if y - 1 - i >= 0:
if board[x - 1 - i][y - 1 - i] == 1: # 不判断当前点
return False
为什么都没什么人评论?我是从Django过来的
def move(index,start,mid,end):
if index == 1:
print(f&#039;{start}--&gt;{end}&#039;)
return
move(index-1,start,end,mid)
print(f&#039;{start}--&gt;{end}&#039;)
move(index-1,mid,start,end)
最后这个应该是move(index-1,mid,start,end)通过 mid移动到end 通过start这个柱子吧
首页上一页123下一页尾页
¥89.00
立即购买
课程须知
具备Python的基础知识和自学能力
老师告诉你能学到什么?
1.递归的核心原理 2.回溯法的核心原理 3.动态规划核心原理 4.斐波拉契的多种实现方式 5. 二分查找算法的多种实现 6. 汉诺塔算法 7. 八皇后算法 8. 全排列算法 9. 数字拆分算法 10. 数字金字塔算法 11. 投资分配算法 12. 0-1背包问题
加群二维码
  • 慕课Python核心用户群
  • 群号:824631704
  • 付费用户专享
  • 技术学习型社群

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消