Javascript LeeCode选题(汉诺塔求解)

news2024/11/28 16:03:34

LeeCode选题

  • 汉诺塔递归求解
  • move移动函数
  • hanoi函数
  • main方法测试代码:
  • 代码实现

汉诺塔递归求解

汉诺塔介绍:
在这里插入图片描述
汉诺塔的的图形(从上到下1,2,3个)实现:
在这里插入图片描述
这里我们可以看到因为必须要将第n个移动到c区域,而移动到c区域之后,我们的由起始位置a变为起始位置b

move移动函数

第一步:因为代码肯定是由一个位置->另一个位置,我们可以写一个函数move来实现移动

public class test {
    public static void move(char pos1,char pos2){
        System.out.print(pos1+"=>"+pos2+" ");
        //这里我们如果需要移动就要调用这两个函数
    }

hanoi函数

第二步:main方法中肯定需要我们传入数值参数
定义hanoi函数移动n次,定义三个位置,pos1为起始位置,pos2为中转位置,pos3为终点
1.这里我们的条件是当汉诺塔为1个的时候,我们只需要将其pos1起始位置移动到pos3目的位置
2.当开始第二个第三个的时候我们可以发现每次n-1个的时候都要从c位置挪动到b上促使第n个移动到目标位置
3.这样我们的起始位置由pos1修改为pos2,我们在以pos1为中转到pos3上,

 public static void hanoi(int n,char pos1,char  pos2,char pos3){
        if(n==1){
            move(pos1,pos3);
            return;
        }
        hanio(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        hanio(n-1,pos2,pos1,pos3);
    }

main方法测试代码:

  public static void main(String[] args){
        hanio(1,'A','B','C');
        System.out.println();
        hanio(2,'A','B','C');
        System.out.println();
        hanio(3,'A','B','C');
        System.out.println();

    }

代码实现

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法 第7天(树和森林)

树 树的存储结构 双亲表示法 找双亲容易,找孩子不容易 孩子链表法 把每个结点的孩子节点排列起来,看成一个线性表,用单链表存 找孩子容易,找双亲难 带双亲孩子链表法 给孩子链表加一个参数,存双亲的下标 孩子兄…

系统思考—盲点

突‮盲破‬点,解‮合锁‬作潜能——JSTO 的‮能高‬碰撞! 在今天的JSTO会议中,我们在Check In环‮分节‬享了近1-2周‮实的‬践和反思。这‮环个‬节不仅‮助帮‬大家‮享共‬了更多的‮息信‬和资源,还‮效有‬促进了彼‮间此‬…

jenv 一款macos下的开源JAVA多版本环境安装管理切换工具

一个用于macos/linux下的多版本JAVA环境管理工具 -- jenv, 这款工具和 pyenv 类似,都是基于shell脚本开发的. 可以方便的管理 多个java环境版本. jenv安装 git clone https://gitee.com/tekintian/jenv.git ~/.jenv jenv环境配置 将下面的代码加入都你的 ~/.bash_profil…

堆垛机知识介绍:附图

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于堆垛机的介绍,内容包括堆垛机的概念、分类、工作原理、结构…

Vue(九) 全局事件总线、Todo案例应用全局事件总线、消息订阅与发布、Todo案例应用消息订阅、编辑Item、$nextTick

文章目录 一、全局事件总线 (GlobalEventBus)1. 总线前言2. 安装全局事件总线3. 使用总线事件4. 解绑总线事件 二、Todo案例应用全局事件总线三、消息订阅与发布1. 前言2. 使用步骤 四、Todo案例应用消息订阅五、Todo案例编辑Item六、$nextTick修改后的Todo完整代码 一、全局事…

【负载均衡】LoadBalance场景演示

服务端⾼并发分布式结构演进之路-CSDN博客文章浏览阅读976次,点赞11次,收藏9次。在进行技术学习过程中,由于大部分读者没有经历过一些中大型系统的实际经验,导致无法从服务端⾼并发分布式结构演进之路-----在进行技术学习过程中&a…

低代码技术:简化应用开发,推动数字化转型

在当今快速变化的技术环境中,企业面临着巨大的压力,需要快速响应市场需求并持续推动数字化转型。传统的应用开发方式往往复杂且耗时,开发周期长且需要大量的编程工作。为了应对这些挑战,低代码技术应运而生,为企业提供…

谈谈人工智能在中国:现状与未来展望

随着科技的飞速发展,人工智能(AI)已经成为推动全球经济和社会发展的关键力量。作为全球科技创新的重要参与者,中国在AI领域取得了令人瞩目的进展,并展现出强大的未来发展潜力。本文将深入分析中国AI的现状,…

XML简介 xml配置文件和properties配置文件对比

目录标题 一、XML简介二、XML配置文件和properties配置文件对比三、XML约束 一、XML简介 XML是EXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。 可…

windows下安装docker操作步骤

因为最近dockerb被封,下载资源太不方便了,所以还是自己本地安装上docker吧 下载的地址一定不要找错,是这里 https://docs.docker.com/desktop/install/windows-install/ 电脑--“控制面板”--“程序与功能”--开启windows功能 “Hyper-V”…

webSocket的自学案例

问&#xff1a; 请展示一个简单websocket案例&#xff1f; 回答&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>简单小例子</title></head><body><input type&quo…

记录游戏高光时刻!4款电脑录屏工具分享

虽然之前也录制过游戏&#xff0c;但是想来还是有不少朋友不知道如何录制一个高清游戏视频&#xff0c;我来和大家聊聊游戏直播和录屏的那些事儿。作为一个游戏主播&#xff0c;我尝试过很多录屏软件&#xff0c;今天就来分享一下我用过的四款录屏软件它们在录制游戏视频时的表…

Win32设备I/O详解

Windows设备 在Windows平台下&#xff0c;设备被定义为能够与之进行通信的任何东西。最常见的 I/O 设备包括&#xff1a;文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、mailslot 和管道等。 平常我们使用的文件&#xff0c;目录都可以称之为设备。…

机床采集网关在汽车智能工厂中的应用及成效-天拓四方

随着工业4.0的浪潮席卷全球&#xff0c;智能化、数字化成为了制造业转型升级的关键词。在这一背景下&#xff0c;机床采集网关以其强大的数据采集、传输和处理能力&#xff0c;为企业的数字化转型提供了强有力的支持。本文将通过一个实际案例&#xff0c;详细介绍机床采集网关在…

数据结构:(LeetCode144)二叉树的前序遍历

给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 解释&#xff1a; 示例 2&#xff1a; 输入&#xff1a;root [1,2,3,4,5,null,8,null,null,6,7,9] 输出&#xff1a;…

CUDA与TensorRT学习二:CUDA编程入门

文章目录 一、理解CUDA的grid和Block1&#xff09;第一个cuda项目 二、理解.cu和.cpp的相互引用及Makefile三、利用CUDA矩阵乘法(matmul)计算、Error Handle 及硬件信息获取1&#xff09;矩阵乘法2&#xff09;Error Handle3&#xff09;硬件信息获取 四、安装Nsight system an…

【APP自动化】Appium 环境搭建

1 基础环境 安装 node.js (1) 安装node.js 安装的是10版本&#xff0c;node-v10.16.0-x64&#xff0c;node.js安装比较简单&#xff0c;直接采用默认选项即可&#xff0c;路径的话&#xff0c;可以自己更改下。 (2) 添加Path环境变量 (3) 验证node.js是否安装成功 可以在CMD…

STM32 IIC

第一块&#xff1a;介绍协议规则&#xff0c;然后用软件模拟的形式来实现协议&#xff0c; 第二块&#xff1a;介绍STM32的IIC外设&#xff0c;然后用硬件来实现协议 因为IIC是同步时序的额&#xff0c;软件模拟协议也非常方便&#xff0c;像我们单片机一样&#xff0c;外挂芯…

零基础入门转录组数据分析——基因Wilcoxon秩和检验

零基础入门转录组数据分析——基因Wilcoxon秩和检验 目录 零基础入门转录组数据分析——基因Wilcoxon秩和检验1. 单基因Wilcoxon秩和检验的基础知识2. 基因Wilcoxon秩和检验&#xff08;Rstudio&#xff09;——代码实操2. 1 数据处理2. 2 基因Wilcoxon秩和检验2. 3 Wilcoxon秩…

FreeRTOS学习笔记—①堆与栈

在嵌入式系统中&#xff0c;堆与栈通常表示操作系统对进程占用的两种管理方式&#xff0c;而RTOS中栈更为重要&#xff0c;每一个链路都要有自己的栈。因此对堆和栈的概念进行了些区分和了解。以下是自己学习总结的一些&#xff0c;如有不对的地方请指正&#xff1a; &#xf…