为了账号安全,请及时绑定邮箱和手机立即绑定
第三个月开始生兔子是 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()
老师讲解的非常通俗易懂,总算是理解动态规划了,谢谢老师。
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这个柱子吧
递归嘛,递是递,归是归嘛,你不要把递当成了归,也不要把归当成了递,应该是递中有归,归中有递,但是递不能代表归,归也不能代表递,递就是递,归就是归,你要没闹懂什么是递,什么是归,也就没分清那个是归那个是递,所以说这个递递归归,归归递递,这个递归你明白了吧
讲的太好了,期待bobby老师更多的高级算法课程
算法真神奇,几行代码就可以实现这么复杂的计算过程,有时候关注宏观的计算步骤就好了,在意太多细节反而把自己搞晕
老师讲错了吧,x轴是代表列,y轴是代表行,唉感觉这节讲的不够清楚
首页上一页12下一页尾页
¥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
提交
取消