v 友们!有没有简单易懂的回溯算法例子,让小弟学习一下。

2020-09-18 10:51:13 +08:00
 xhf1024
2409 次点击
所在节点    Java
9 条回复
ChenFanlin
2020-09-18 11:07:00 +08:00
Helix225
2020-09-18 11:27:15 +08:00
探迷宫,数独生成
twllz
2020-09-18 11:37:24 +08:00
LeetCode 《 77.组合》,链接: https://leetcode-cn.com/problems/combinations/
推荐这一个题解,链接: https://leetcode-cn.com/problems/combinations/solution/hui-su-suan-fa-jian-zhi-python-dai-ma-java-dai-ma-/

总之就是这样一种模式:
```
1. 执行某种操作;
2. 在这种操作的基础上继续操作;
3. 撤回 "1" 中的操作。
```
kanglo
2020-09-18 11:43:52 +08:00
@ChenFanlin 这个 repo 真是太好了,我学算法刷题全靠这个
asanelder
2020-09-18 12:50:43 +08:00
回溯就是 DFS 吧,可以看看俺写的文章
https://segmentfault.com/a/1190000024456834

由一个很简单的直观的例子讲 DFS
然后从 DFS 的角度来看待树的三种遍历
还举了一个使用 DFS 轻松解决 leetcode 题的问题
最后引申到访问者模式,你会发现两者的相似处

以上由浅入深,举例易懂,配以图片。

请慢慢细品
asanelder
2020-09-18 12:52:10 +08:00
@ChenFanlin #1 啊看到这个博主关于树的三种遍历其本质是时间点的看法,这和俺的看法一样啊!

果然天才所见略同
CodeJr
2020-09-18 12:53:41 +08:00
全排列,八皇后 老经典了
asanelder
2020-09-18 12:56:49 +08:00
俺的是用 java 举的例子
一楼那个是 python

再给楼主提个醒,回溯解题的过程就是一个树的 DFS 过程,所以,首先你要能把一个题的解想像成一颗树(几叉无所谓)
araaaa
2020-09-18 13:13:05 +08:00
8 皇后

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/708210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX