当前位置: 首页 > news >正文

DSF深度搜索时到底是如何回溯的(小tip)

这一段让我迷了两次,为什么回溯的时候,恢复了最后一位,往上递归一层之后,把最后一位填在它前一位,但是原本的前一位没有恢复,最后一位要怎么办?其实这还是递归没明白

也就是这一步是如何实现的 

for(int j=1;j<=n;j++)
    {
        if(!date[j])
        {
            tate[u]=j;
            date[j]=1;
            dfs(u+1);
            date[j]=0;    
        }
    }

当到要回溯时,

u从3->2(n=3时),data[3]=0 

这时j=3,无法再进入for循环,要再次回溯到上一层

u从2->1,data[2]=0,

这时j=2,可以进入for循环,但是j++,j从3开始判断,所以这时跳过了j=2,到下次才开始判断j=2的情况

实在还是不能理解的话,就和我一样debug一下吧,简单暴力

 

http://www.lryc.cn/news/35746.html

相关文章:

  • Rust Web入门(八):打包发布
  • synchronize优化偏向锁
  • 算法习题之动态规划
  • 顺序表【数据结构】
  • SNAP中根据入射角和干涉图使用波段计算器计算垂直形变--以门源地震为例
  • Ubuntu20.04中Docker安装与配置
  • pytorch权值初始化和损失函数
  • maven将jar文件上传至本地仓库及私服
  • 前端学习第三阶段-第1、2章 JavaScript 基础语法
  • hibernate学习(二)
  • 平安银行LAMBDA实验室负责人崔孝林:提早拿到下一个计算时代入场券
  • linux下进不去adb
  • 【SPSS】多因素方差分析详细操作教程(附案例实战)
  • 我的投稿之旅
  • 51单片机DS18B20的使用
  • Vue组件原理知识(1)
  • Linux:IO库函数
  • Go爬虫学习笔记
  • 数据结构课程设计:高铁信息管理系统(C++实现)
  • Python 模块之 datetime
  • linux安装编译ffmpeg
  • 嵌入式Linux驱动开发(二)LED驱动
  • C++学习
  • JavaEE简单示例——依赖注入
  • 大数据框架之Hive: 第7章 综合案例练习(初级)
  • kafka:linux 安装 kafka集群
  • springboot实现Hessian协议的RPC服务
  • 2-6 SpringCloud快速开发入门: Eureka 服务注册中心发现与消费服务
  • Java-Web之s2-001与CommonsCollections
  • 【JavaSE】数组的定义和使用(下)