数据结构 05 - 递归回溯问题(一):小球找路问题

高速光耦在隔离串口通信中的选型与优化策略 本文深入探讨了高速光耦在隔离串口通信中的关键作用与选型优化策略。针对串口通信中因普通光耦响应慢导致的误码问题,文章详细分析了响应时间、电流传输比、供电电压与隔离耐压等核心选型指标,并对比了6N137、HCPL-0601等主流型号。同时,提供了电路设计、PCB布局的优化技巧及实用的调试指南,旨在帮助工程师实现高速、稳定的隔离串口通信。 阅读详情

在这里插入图片描述

一、思路分析

1.先创建一个二维数组模拟迷宫,把相应点置为1
2.规则:0表示该点没有走过;1表示墙;2表示通路可以走;3表示该点已经走过,但走不通
3.策略:下->右->上->左

二、代码实现

public class MG {
    public static void main(String[] args) {
        //0:表示没走过;1:表示墙;2:表示可以走通;3:表示走过但不通;策略:上右下左
        int[][] map = new int[8][7];
        for (int i = 0; i < 7; i++) {
            map[0][i] = 1;
            map[7][i] = 1;
        }
        for (int i = 0; i < 8; i++) {
            map[i][0] = 1;
            map[i][6] = 1;
        }
        map[3][1] = 1;
        map[3][2] = 1;
        list(map);
        setWay4(map,1,1);
        list(map);
    }
    //实现方法:利用递归回溯来解决小球路线问题
    //1.上右下左
    public static boolean setWay1(int[][] map,int i,int j){
        //先判定是否到了终点
        if(map[6][5] == 2){
            return true;
        }
        if(map[i][j] == 0){
            map[i][j] = 2;
            if(setWay1(map,i-1,j)){
                return true;
            }else if(setWay1(map,i,j+1)){
                return true;
            }else if(setWay1(map,i+1,j)){
                return true;
            }else if(setWay1(map,i,j-1)){
                return true;
            }else {
                map[i][j] = 3;
                return false;
            }
        }else {
            return false;
        }
    }
    //2.右下左上
    public static boolean setWay2(int[][] map,int i,int j){
        //先判定是否到了终点
        if(map[6][5] == 2){
            return true;
        }
        if(map[i][j] == 0){
            map[i][j] = 2;
            if(setWay2(map,i,j+1)){
                return true;
            }else if(setWay2(map,i+1,j)){
                return true;
            }else if(setWay2(map,i,j-1)){
                return true;
            }else if(setWay2(map,i-1,j)){
                return true;
            }else {
                map[i][j] = 3;
                return false;
            }
        }else {
            return false;
        }
    }
    //3.下左上右
    public static boolean setWay3(int[][] map,int i,int j){
        //先判定是否到了终点
        if(map[6][5] == 2){
            return true;
        }
        if(map[i][j] == 0){
            map[i][j] = 2;
            if(setWay3(map,i+1,j)){
                return true;
            }else if(setWay3(map,i,j-1)){
                return true;
            }else if(setWay3(map,i-1,j)){
                return true;
            }else if(setWay3(map,i,j+1)){
                return true;
            }else {
                map[i][j] = 3;
                return false;
            }
        }else {
            return false;
        }
    }
    //4.左上右下
    public static boolean setWay4(int[][] map,int i,int j){
        //先判定是否到了终点
        if(map[6][5] == 2){
            return true;
        }
        if(map[i][j] == 0){
            map[i][j] = 2;
            if(setWay4(map,i,j-1)){
                return true;
            }else if(setWay4(map,i-1,j)){
                return true;
            }else if(setWay4(map,i,j+1)){
                return true;
            }else if(setWay4(map,i+1,j)){
                return true;
            }else {
                map[i][j] = 3;
                return false;
            }
        }else {
            return false;
        }
    }
    //遍历地图
    public static void list(int[][] map){
        System.out.println("目前地图的情况:");
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 7; j++) {
                System.out.print(map[i][j] + "\t");
            }
            System.out.println();
        }
    }
}
RK3588 EVB开发板原理图讲解【六】 该原理图展示了eMMC Flash与主控芯片之间的连接关系,以及相关的电源、信号线路和去耦电容等。 阅读详情

相关推荐

freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch

kamailio是个纯粹的SIP服务器。本文介绍先如何在debian8下安装debian5.0,然后详细介绍如何实现使用kamailio做freeswitch均衡负载。kamailio同时实现做为代理服务器、注册服务器、重定向服务器。

不积跬步无以至千里; 不积小流无以成江海 1万+

使用递归解决简单迷宫寻路问题

使用递归解决迷宫问题

qq_47155894的博客 665

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例)

本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。

weixin_29200741的博客 737

递归回溯——老鼠出迷宫

这是一道关于递归回溯的经典题目,在布下障碍的迷宫中,为老鼠朋友找到一条可以逃出困境的路线,本文将为大家详细讲解如何运行递归的方法让老鼠走出迷宫。

qq_75151748的博客 1091

UniTouch:多模态触觉对齐技术如何重塑零样本跨模态应用

UniTouch模型通过创新的多模态触觉对齐技术,成功将触觉数据映射到通用的视觉-语言嵌入空间,解决了触觉模态的“孤岛困境”。该技术利用对比学习和传感器特定标记,实现了高质量的零样本学习能力,使模型无需额外训练即可完成触觉分类、描述等任务,并能驱动跨模态生成,为机器人、VR和智能制造等领域提供了强大的触觉理解新范式。

weixin_29044713的博客 409

Qt Creator设计器里也能拖拽?5步将你的QML自定义控件变成可视化插件(Qt6.5+)

本文详细介绍了如何在Qt Creator设计器中实现QML自定义控件的可视化拖拽功能(Qt6.5+)。通过5个步骤,从构建可插件化的QML控件基础到部署插件到设计器环境,帮助开发者将自定义控件转化为设计器插件,提升团队协作效率。特别适合需要频繁调整UI样式的开发场景。

weixin_29214559的博客 171

【转】递归与回溯

回溯(backtracking)是一种系统地搜索问题解答的方法。为了实现回溯,首先需要为问题定义一个解空间(solution space),这个空间必须至少包含问题的一个解(可能是最优的)。下一步是组织解空间以便它能被容易地搜索。典型的组织方法是图(迷宫问题)或树(N皇后问题)。一旦定义了解空间的组织方法,这个空间即可按深度优先的方法...

weixin_30736301的博客 744

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

递归(迷宫回溯问题的实现)

递归其实就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得更简洁;

Strine的博客 340

AD(Altium Designer)器件封装——立创商城导出原理图和PCB完成器件封装操作指南

官网:www.SZLCSC.COM以芯片为例器件类——>芯片类——>对应芯片确定芯片——>数据手册1:原理图2:PCB3:打开操作流程选中原理图——>文件——>导出——>AD1: ✔2:导出AD文件操作流程选中PCB图——>文件——>导出——>AD1: ✔2:导出AD文件1:PCB图2:原理图操作流程文件——>打开操作流程选中文件——>打开操作流程项目文件——>添加新的...到工程——>Schematic Library新原理图库操作流程项目文件——>添加新的...到工程——>PCB Library新的PC

XU157303764的博客 5439

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

目前从事linux驱动开发,多交流多学习吧 1096

【尚硅谷】Java数据结构与算法笔记05 -递归

八皇后问题, 是一个古老而著名的问题, 是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯 1848 年提出: 在8×88 \times 88×8格的国际象棋上摆放八个皇后, 使其不能互相攻击, 即: 任意两个皇后都不能处于同一行、 同一列或同一斜线上, 问有多少种摆法(92)。

知不足而奋进,望远山而前行 2万+

ABAP 平台下配置 OAuth 2.0 Authorization Code 授权类型的完整指引

本文是面向ABAP管理员和SAP开发者的OAuth 2.0授权码配置实战指南。文章详细介绍了在ABAP平台启用Authorization Code的完整流程,包括前置条件检查(如TLS配置和系统用户准备)、SOAUTH2事务码中各字段配置要点(授权类型启用、Redirect URI设置、授权码有效期等)、Scope分配规则以及验证方法。通过一个销售订单OData接口的实际案例,说明了如何将抽象规范转化为具体配置。最后提供了多种验证方式(事务码测试、端点测试和Postman测试)以及关键配置参数(如授权码有效

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 298

05-递归回溯-迷宫问题

package 迷宫问题; public class MiGong { public static void main(String[] args) { //创建数组,模拟迷宫 int[][] map=new int[8][7]; //使用一表示墙 //第一行和最后一行置为一 for (int i = 0; i < 7; i++) { map[0][i]=1; map[7][i]=1; } ...

惊鸿的技术博客 292

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

05-数据结构与算法-递归

数据结构与算法,递归的介绍及应用

Kevin-Ding的博客 280

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

尚硅谷算法与数据结构学习笔记05 -- 递归

1、递归介绍 1.1、递归应用场景 看个实际应用场景, 迷宫问题(回溯), 递归(Recursion) 1.2、递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 1.3、递归调用机制 打印问题 阶乘问题 // 阶乘问题 public static int factorial(int n) { if (n == 1) { return 1; } else {

exodus3的博客 438

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数据结构和算法学习(韩顺平)之递归:迷宫问题

package com.atguigu.recursion; /** * @author * @create 2022-05-27-9:29 */ public class MiGong { public static void main(String[] args) { //创建一个二维数组,模拟迷宫 int[][] map = new int[8][7]; //1表示墙 //上下全部置为1 for (i.

m0_55895641的博客 278

X16数据结构部分05

X16数据结构部分05递归调用打印问题迷宫问题递归实现总目录 递归调用打印问题 /* 递归能够解决什么样的问题呢 阶乘 8皇后 魔攻问题 最短路径问题 举个例子 球和篮子 如果是两个球放到两个篮子里面 就是3种结果(1 1)(2 0)(0 2) 像快速排序 二分查找 归并排序等算法都需要用到递归 递归需要遵循的重要规则 方法区内存是独立的,不受外部影响 如果递归的是引用数据

men方法栈帧的博客 231

Java数据结构与算法--day05

一、递归1. 递归的调用机制2. 递归需要遵守的规则3. 迷宫问题4. 八皇后问题 一、递归 1. 递归的调用机制 package com.atguigu.recursion; public class RecursionTest { public static void main(String[] args) { //通过打印问题,回顾递归调用机制 test(4); //int res = factorial(3); //System.out.println("res=" .

weixin_56706590的博客 119

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 971

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 294

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 325

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 513

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 350

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 148

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 528
上一篇: Java基础 02 - 统计文本各字符出现次数
下一篇: 数据结构 06 - 递归回溯问题(二):八皇后问题
终难忘世外仙株寂寞林
博客等级 码龄6年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值