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

理解递归和回溯

文章目录

  • 什么是递归
  • 回溯

什么是递归

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

回溯

在这里插入图片描述

//使用递归回溯来给小球找路//说明//1. map 表示地图//2. i,j 表示从地图的哪个位置开始出发 (1,1)//3. 如果小球能到 map[6][5] 位置,则说明通路找到.//4. 约定: 当map[i][j] 为 0 表示该点没有走过 当为 1 表示墙  ; 2 表示通路可以走 ; 3 表示该点已经走过,但是走不通//5. 在走迷宫时,需要确定一个策略如:下->右->上->左 , 如果该点走不通,再回溯/*** * @param map 表示地图* @param i 从哪个位置开始找* @param j * @return 如果找到通路,就返回true, 否则返回false*/public static boolean setWay(int[][] map, int i, int j) {if(map[6][5] == 2) { // 通路已经找到okreturn true;} else {if(map[i][j] == 0) { //如果当前这个点还没有走过//按照策略 下->右->上->左  走map[i][j] = 2; // 假定该点是可以走通.if(setWay(map, i+1, j)) {//向下走return true;} else if (setWay(map, i, j+1)) { //向右走return true;} else if (setWay(map, i-1, j)) { //向上return true;} else if (setWay(map, i, j-1)){ // 向左走return true;} else {//说明该点是走不通,是死路map[i][j] = 3;return false;}} else { // 如果map[i][j] != 0 , 可能是 1, 2, 3return false;}}}
http://www.lryc.cn/news/454100.html

相关文章:

  • 知识图谱入门——3:工具分类与对比(知识建模工具:Protégé、 知识抽取工具:DeepDive、知识存储工具:Neo4j)
  • 使用指标进行量化交易时,有哪些需要注意的风险点呢
  • 数据结构阶段测试2的一点小补充
  • 量化交易里面的挂单成交率大概是多少呢
  • 【Android 14源码分析】Activity启动流程-3
  • Javascript客户端时间与服务器时间
  • 系统架构设计师教程 第11章 11.4 边缘计算概述 笔记
  • CSS全解析
  • 一款基于 Java 的可视化 HTTP API 接口快速开发框架,干掉 CRUD,效率爆炸(带私活源码)
  • CSS3渐变
  • Emissive CEO Fabien Barati谈《消失的法老》背后的故事:XR大空间体验的创新与未来
  • mysql设置表的某一个字段每天定时清零
  • 实例分割、语义分割和 SAM(Segment Anything Model)
  • 深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
  • 《精通开关电源设计》笔记一
  • QLoRA代码实战
  • pyqt QGraphicsView 以鼠标为中心进行缩放
  • FPGA-Vivado-IP核-逻辑分析仪(ILA)
  • 基于webComponents的纯原生前端框架
  • OpenCV-背景建模
  • 一个简单的摄像头应用程序6
  • Pikachu-目录遍历
  • 用Python实现基于Flask的简单Web应用:从零开始构建个人博客
  • IDEA的lombok插件不生效了?!!
  • CSP-S 2022 T1假期计划
  • 为什么要学习大模型?AI在把传统软件当早餐吃掉?
  • 全流程Python编程、机器学习与深度学习实践技术应用
  • pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)
  • jquery on() 函数绑定无效
  • 数字化转型与企业创新的双向驱动