这是C++算法基础-搜索与图论专栏的第三十七篇文章,专栏详情请见此处。
引入
上篇博客,我们学习了DFS算法的大体套路,这次,我将会通过两个例题来更详细的讲解。
下面我们就来讲DFS算法(例题)的实现。
过程
题目大意:给定一个整数
,将数字
排成一排,请你按照字典序将所有的排列方法输出。
这是一道最经典的DFS问题之一,方法很简单:先循环确定第一个数,调用函数,再循环确定第二个数,注意特判不能和第一个数相同,再调用函数确定第三个数,也特判不能和第一个数和第二个数一样.....此时,所有位置填完,无法继续填数,所以这是一种方案,输出;然后回溯到第![n-1]()