深度优先搜索入门



数字的全排列

跳转链接

深度优先搜索就是先走到底走到无路可走然后再进行回溯的算法,用于全排列打表操作,数字的全排列操作就是每一个序列需要包含从1到n所有的数字,但是数字不能重复,不能和原来有过的序列相同

思路:开一个bool数组用于记录当前下标的数字是否被使用过,同时开一个path数组用记录已经生成了的序列,便于输出,dfs函数的u是记录当前已经走过的步数,当步数等于n时表明已经走到了尽头需要进行回溯,在回溯前需要将已经保存在path数组的序列进行输出,每个输出后要换行,所以加了一个put。然后在没有达到最后一步时,对st数组进行遍历,如果有没有使用的数字就将其加到当前的path[u]中,然后将其变成true再送给下一层进行递归,再递归结束后恢复现场,让其变成false,因为path[u]赋值会覆盖上一次的值,所以path数组不用管。

代码如下

#include
using namespace std;
const int N = 10;
int path[N];
bool st[N];
int n;
void dfs(int u)
{
  if (u == n)
  {
    for (int i = 0; i < n; i ++) printf("%d ", path[i]);
    puts("");
    return;
  }
  for (int i = 1; i > n;
  dfs(0);
  return 0;
}

Original: https://www.cnblogs.com/amour233/p/16465496.html
Author: LYL233
Title: 深度优先搜索入门

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644342/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 自己定义ViewGroup实现仿淘宝的商品详情页

    近期公司在新版本号上有一个须要。 要在首页加入一个滑动效果, 详细就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 例如以下图 X东的商品详情页,假设用户继续向上拉的话就…

    技术杂谈 2023年5月31日
    032
  • Java中的运算符

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    技术杂谈 2022年12月17日
    0115
  • PyQt5 鼠标事件

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    技术杂谈 2022年9月27日
    0192
  • 终端接入LTE网络过程中发生的测量事件

    系统测量事件: A1事件:表示服务小区信号质量高于一定门限; 满足此条件的事件被上报时,eNodeB停止异频/异系统测量;类似于UMTS里面的2F事件; A2事件:表示服务小区信号…

    技术杂谈 2023年5月31日
    034
  • Chrome浏览器对标签进行整理和分组

    首先要升级到比较新的chrome版本,比如要81版本以上才可以 在打开页面的title上右击,弹出选项”Add Tab to Group”添加标签到分组,选…

    技术杂谈 2023年5月31日
    045
  • PYTORCH: 60分钟

    什么是PyTorch? PyTorch 是一个基于Python的科学计算包,有两大用途: NumPy的替代品,可使用GPUs和其它加速器的强大功能 一个用于实现神经网络的自动微分库…

    技术杂谈 2023年7月25日
    030
  • SQL 基础

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    技术杂谈 2022年12月6日
    0122
  • 在 max环境下 下载、安装、运行 Antlr4

    1. 下载安装 ##1. 切目录 cd /usr/local/lib ##2. 下载jar包 wget https://www.antlr.org/download/antlr-4…

    技术杂谈 2023年7月11日
    028
  • centos找不到环境变量 -bash: ls: command not found

    在系统中输入命令,报如下错误: [root@a1 work]# ll-bash: ls: command not found 临时解决办法: export PATH=/usr/lo…

    技术杂谈 2023年5月31日
    041
  • NBA 2K23 Arcade Edition for Mac(篮球游戏)

    Original: https://www.cnblogs.com/aurora-123/p/16841256.htmlAuthor: 佛系女孩Title: NBA 2K23 Ar…

    技术杂谈 2023年7月11日
    023
  • Redis基础

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    技术杂谈 2022年12月6日
    0103
  • 阿里云有奖体验:如何通过ECS挂载NAS文件系统

    实验简介 本实验提供CentOS系统ECS一台和NAS文件服务。 NAS基于POSIX文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥。它提供了简单的可扩展…

    技术杂谈 2023年7月11日
    038
  • 策略模式、策略模式与Spring的碰撞

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    技术杂谈 2022年12月17日
    0104
  • 8089汇编 运算符指令

    8089汇编 运算符指令 汇编指令不区分大小写、指令 寄存器,数字(进制符) mov、add 指令 一、根据下面指令分析 ; 存入、将001AH值存储ax寄存器 mov ax, 0…

    技术杂谈 2023年6月1日
    030
  • Dell服务器忘记iDrac口登录密码【转】

    一、问题描述 当遇到一个未标明iDrac口登录密码的二手服务器或者忘记配置的密码时,会导致iDrac口无法登录。 说明:戴尔服务器iDrac默认账号密码为:root/calvin,…

    技术杂谈 2023年5月31日
    0105
  • Spring使用注解开发及使用java类进行配置bean

    Spring使用注解开发 说明 在spring4之后,想要使用注解形式,必须得要引入aop的包 在配置文件当中,还得要引入一个context约束 <?xml version=…

    技术杂谈 2023年7月11日
    025
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球