前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

这是一个全排列

qiguaw 2024-11-24 20:40:18 资源文章 9 ℃ 0 评论

leetcode46,要求我们去做一件事,把一个没有重复数字的序列的全部全排列返回回来。

看到这个题目的时候,其实就看见了两个关键词:没有重复全排列。有了这两个关键词,基本就定下来了要使用的算法工具——DFS,在接下来的很长一段时间,我都会和DFS这个东西相爱相杀的。

还记得DFS的定义吗?这是一个在学习图的时候学习的一种查找的方法,这道题用DFS确实再合适不过了,看到了上面的两个关键字,其实这个题就直接转化成了一个高中学过的全排列问题,这个问题解释起来就是:原序列中的数字可能出现在原序列中的各个位置

有了上面的这个解释,直接写代码就好了


这个题目的伪代码就是图上的样子啦,虽然是伪代码,但是写起来真的不是很复杂的呀!

for循环里面的两个swap其实就是用来回溯啦,因为我们生成了子问题空间,处理子问题之前需要先创建一个子问题,子问题被解决了以后要恢复现场呀,就和我们常见的进程切换又恢复现场是一样的呀。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表