1
han777 10 小时 14 分钟前
《计算机程序的构造与解释》
|
2
wyx119911 10 小时 13 分钟前
leetcode 刷几道二叉树的题?
|
3
coool 9 小时 47 分钟前
基于 JavaScript 和 Python 的书:<递归算法与项目实战>
|
4
kapaseker 9 小时 31 分钟前
递归有什么非要用的场景吗?其实这个没有非得学的必要
|
6
henix 8 小时 52 分钟前 1
|
7
iOCZS 8 小时 40 分钟前
递归有啥特别要学的吗?不过有个尾递归优化的东西。
|
8
iOCZS 8 小时 39 分钟前
更多时候需要结合场景吧,譬如说深度优先遍历,回溯等。
|
9
mumbler 7 小时 44 分钟前
科目二都没过,就上路了,你肯定上的不是正规驾校
|
10
dragondove 7 小时 17 分钟前
初学的难主要还是缺乏可视化的手段吧,还有一个是用递归模拟迭代的多参数混乱。可以看下类似 https://dmytrobaida.github.io/recursion-viewer/ 的工具,然后自己写的时候可以打印点日志,打印的方式是递归方法入口先打印 indent (比如说是 2 个空格)* 递归深度(递归深度作为参数传入)然后方法名加各个参数信息。打印内容可能是类似下面这样
``` |fib(5) | |fib(4) | | |fib(3) | | | |fib(2) | | | |2 | | | |fib(1) | | | |1 | | |3 | | |fib(2) | | |2 | |5 | |fib(3) | | |fib(2) | | |2 | | |fib(1) | | |1 | |3 |8 ``` 这个的源码大概是这样: ```scala def fib(n: Int, depth: Int = 0): Int = println(s"""${"| " * depth}|fib($n)""") if n <= 2 then println(s"""${"| " * depth}|$n""") n else val r = fib(n - 1, depth + 1) + fib(n - 2, depth + 1) println(s"""${"| " * depth}|$r""") r val res = fib(5) ``` 当然,你也可以想办法把这个功能做成装饰器 |
11
amlee 7 小时 6 分钟前
SICP 有一部分专门讲递归
|
12
levelworm 6 小时 22 分钟前 via Android
还是跟着感兴趣的项目来吧,比如说写个 shadow casting 的算法啥的。
|
13
vance123 4 小时 25 分钟前
6.009 最后几个项目
|
14
786375312123 3 小时 27 分钟前
你上 leetcode 做几个 dfs 的题不就好了
|