习题:一维坐标的移动(bfs java)

动态规划——常见题型及算法思路解析 动态规划理解起来的确困难,因为要给数学规律一个合理的解释是非常耗费时间的,即使已知在数学规律的背后一定会有原因,但将题做出来跟理解题目不是一个概念,无论你准备朝哪个方向努力。首要的事就是先将题拿下。 阅读详情
package lanqiaobei;

import java.util.*;

/*
习题:一维坐标的移动
1.	在一个长度为n的坐标轴上,蒜头君想从A点 移动到B点。他的移动规则如下:
2.	向前一步,坐标增加1。
3.	向后一步,坐标减少1。
4.	跳跃一步,使得坐标乘2。
蒜头君不能移动到坐标小于0或大于n的位置。蒜头想知道从A点移动到B点的最少步数是多少,你能帮他计算出来么?
输入格式
第一行输入三个整数n,A,B,分别代表坐标轴长度,起始点坐标,终点坐标。(0≤A,B≤n≤50000)
输出格式
输出一个整数占一行,代表蒜头要走的最少步数。
样例输入
10 2 7
样例输出
3
 */
public class OneZuoBiao {
    public static int[] juge = {1, -1, 2};
    public static int ress = 0;

    public void bfs(int n, int A, int B) {
        int[] res = new int[5000];
        List<Integer> used = new ArrayList<>();
        Queue<Integer> q = new LinkedList();
        ((LinkedList) q).add(A);
        //一层一层向下进行
        while (!q.isEmpty()) {
            //获得队头元素
            int na = q.poll();
            //进退跳的三步操作
            for (int i = 0; i < juge.length; i++) {
                //获得操作完的大小
                int m = na + juge[i];
                if (m >= 0 && m <= n) {
                    //跳出条件
                    if (m == B) {
                        ress = res[na]+1;
                        return;
                    } else {
                        if (!used.contains(m)) {
                            used.add(m);
                            res[m] = res[na] + 1;
                            ((LinkedList<Integer>) q).add(m);
                        }
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int A = sc.nextInt();
        int B = sc.nextInt();
        OneZuoBiao a = new OneZuoBiao();
        a.bfs(n, A, B);
        System.out.println(ress);
    }

}

 

算法设计(动态规划):机器人路径规划(JAVA代码实现及题目分析) 机器人路径规划 题目内容: 一个机器人只能向下和向右移动,每次只能移动一步,设计一个算法求机器人从(0,0)到(m,n)有多少条路径。 输入格式: 以空格分开m,n 输出格式: 路径条数 输入样例: 4 5 输出样例: 35 这个题还是蛮简单的,不过需要注意的一点是这个题目有点问题,它题目给出的(m,n)在数组里是指[m-1][n-1],不信的你可以自己在纸上演算一下,确实是题目这里没有说清楚。因... 阅读详情

相关推荐

LeetCode刷题——62. 不同路径

题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 输入: m = 7, n = 3 输出: 28 提示: 1 <= m, n <

算法:机器人路径规划

机器人路径规划(20分) 题目内容: 一个机器人只能向下和向右移动,每次只能移动一步,设计一个算法求机器人从(0,0)到(m,n)有多少条路径。 输入格式: 以空格分开m,n 输出格式: 路径条数 输入样例: 4 5 输出样例: 35 #include <stdio.h> int a[10][10]; int lujing(int ,int); int main() { ...

juliet0727的博客 4986

HTTP 代理服务器的设计与实现

HTTP 代理服务器的设计与实现 首先当然是最重要的代码:github地址 1) 实验目的 熟悉并掌握 Socket 网络编程的过程与技术;深入理解 HTTP 协议,掌握 HTTP 代理服 务器的基本工作原理;掌握 HTTP 代理服务器设计与编程实现的基本技能。 2) 实验内容 基于 java 实现了基本功能与全部附加功能,并增加了 https 的支持 (1) 设计并实现一个基本 HTTP 代理服...

qq_42754642的博客 1888

动态规划计算移动路径的个数

由于机器人只能向下或向右移动,到达点 (i,j) 的路径数量等于到达点 (i-1,j) 的路径数量加上到达点 (i,j-1) 的路径数量。因为从 (i-1,j) 向右移动一步或从 (i,j-1) 向下移动一步都能到达 (i,j)。:先初始化二维数组,然后边界初始化为1(表示一直往下走或者一直往右走的路径,理应都是1),然后遍历填充二维数组,得到结果。题目:一个机器人只能向下和向右移动,每次只能移动一步,设计一个算法求它从(0,0)移动到(m,n)有多少条路径。

2301_80969630的博客 409

MOS管热阻的测量方法

实验室内如何测试mos管热阻

weixin_43492562的博客 4095

Security Onion的部署(超详细)

本文介绍了开源入侵检测系统securityonion的部署

qq_72583325的博客 6070

每日一道算法题:LeetCode 63:Unique Paths II(不同路径 II )

不同路径 II题目分析题解动态规划 题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 题目链接:link. 分析 这道题作为不同路径系列的第二道,难度始终,当对于不同路径I ,新增了障碍物,解题思路改变不大。 使用动态规划,有下列几种情况: 当前位置为障碍物,则当前位置的路径数 = 0. 当

Alan0_0的博客 549

如何产生ATPG IR-drop分析波形文件(DFT)

摘要:本文介绍了生成VCD波形的流程与要求,主要用于后端进行IR-drop分析。生成过程分为ATPG shift和speed ATPG capture两部分,分别对应不同的输入要求、模式设置和仿真参数。

murphyrong的博客 872

BFS例题--一维坐标的移动(java)

习题:一维坐标的移动 1. 在一个长度为n的坐标轴上,蒜头君想从A点 移动到B点。他的移动规则如下: 2. 向前一步,坐标增加1。 3. 向后一步,坐标减少1。 4. 跳跃一步,使得坐标乘2。 蒜头君不能移动到坐标小于0或大于n的位置。 蒜头想知道从A点移动到B点的最少步数是多少,你能帮他计算出来么? 输入格式 第一行输入三个整数n,A,B,分别代表坐标轴长度,起始点坐标,终点坐标

我的java和C++ 860

qt实现OCC读取STEP模型并显示(附完整源码)

qt实现OCC读取STEP模型并显示(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1484

Python 爬虫实战:全球咖啡期货市场数据采集与分析全攻略

通过本项目,我们实现了对全球咖啡期货市场数据的采集、处理和可视化,为市场分析和决策支持提供了数据基础。未来,可以进一步结合机器学习和深度学习技术,对咖啡期货价格进行预测和建模,提高市场分析的准确性和效率。

2201_76125261的博客 396

一维坐标的移动

在一个长度为n的一维坐标轴中,蒜头君想从A点移动到B点,移动规则如下: 1,向前一步,坐标增加1 2,向后一步,坐标减少1 3,跳跃一步,坐标乘2 蒜头君不能移动到坐标小于0或大于n的位置,求从A到B的最小步数。 求最短,bfs。 代码如下: import java.util.LinkedList; import java.util.Queue; import java.util...

微凉的博客 473

基于Python的农业市场价格抓取与供需分析:现代爬虫技术与实战应用

在正式开始爬虫开发之前,我们首先了解爬虫的基本概念和工作原理。爬虫(Web Scraping)是通过编程的方式,自动从互联网上获取信息的技术。它可以帮助我们提取HTML页面中的特定数据,通常用于收集并处理大量信息。发送HTTP请求:爬虫需要向目标网站发送请求,获取网站的HTML页面内容。解析HTML页面:通过HTML解析器对获取的页面内容进行解析,提取其中需要的数据。数据清洗与存储:将提取的数据进行清洗,去除多余的字符或无关内容,然后存储到合适的格式(如CSV文件、数据库等)中。数据分析与可视化。

2201_76125261的博客 1119

一维数组的移动

import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class points { int x, y; public points(int x, int y) { this.x = x; this.y = y; } } public class Main { static

AC_coding 1450

DPABISurf使用教材

严老师的官方教程:http://rfmri.org/Course DPABISurf版本:dpabi50docker.tar.gz MATLAB版本:2018b 一、数据准备 (1)如果是数据的DICOM格式,整理成以下格式(注意文件夹的命名方式): 如果觉得不是很清楚,可以在官网下载Demo数据(http://rfmri.org/DemoData),参照里面的文件格式进行整理即可。 (2)如果数据是nii格式,整理成以下格式: 这里没有使用官网的demo数据进行学习,而是..

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 8523

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计蒜客:一维坐标的移动(java)

运用bfs算法 在一个长度为n的坐标轴上,蒜头君想从A点 移动到B点。他的移动规则如下: 向前一步,坐标增加1。 向后一步,坐标减少1。 跳跃一步,使得坐标乘2。 蒜头君不能移动到坐标小于0或大于n的位置。蒜头想知道从A点移动到B点的最少步数是多少,你能帮他计算出来么? 输入格式 第一行输入三个整数n,A,B,分别代表坐标轴长度,起始点坐标,终点坐标。(0≤A,B≤n≤50000) 输出格式 输出一个整数占一行,代表蒜头要走的最少步数。 样例输入 10 2 7 样例输出 3 im

weixin_57097732的博客 313

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

bfs习题(Java实现)

登录 - AcWing登录 - AcWing// 引入Arrays类,用于快速填充数组//1-basedi <= n;i++) {//把字符串写入数组j <= m;j++) {// --- 优化点 1: 将大数组的分配移到循环外 ---// 用于BFS的标记数组// 这行在这里可能会导致问题,如果后面没有其他输入,可以省略// --- 优化点 2: 重置数组,而不是重新创建 ---// 使用 Arrays.fill() 来重置每一行。

2302_80118884的博客 419

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

java坐标移动_广度优先解决一维坐标移动问题java实现

题目如下 :这题可以用广度优先搜索的算法来解决,首先,没移动一次有三个选择,给出起始点和最终点,那么我们只需要枚举出全部的解决方案,然后比较出最短的方案就可以了,但是这样很浪费时间空间,复杂度很高,实际上用不了,而搜索树可以简化搜索,广度优先是从搜索树从上往下扫描的,那么我在搜索的时候建立一个保存这个位置是否到达过的标记,用一个长度为n的一维数组来保存,因为我在入队的时候,到达相同位置,第一次扫描...

weixin_39567013的博客 394

BFS广搜解决迷宫问题java实现

目录 1.例题 题目描述 输入 输出 测试数据 2. 思路分析 基本思想 具体步骤 代码实现 3.BFS小结 求解思路: 注意 1.例题 题目描述 迷宫由 n 行 m 列的单元格组成,每个单元格要么是空地,要么是障碍物。其中1表示空地,可以走通,2表示障碍物。给定起点坐标startx,starty以及终点坐标endx,endy。现请你找到一条从起点到终点的最短路径长度。 输入 第一行包含两个整数n,m(1<=n,m<=1000)。接下来 n 行,每行包含..

专注Spring、SSM、数据结构与算法、蓝桥杯领域创作者 4993

广度优先搜索(BFS)类专题

理论笔记见博客:算法Day5——广度优先搜索笔记 求迷宫最短路径 /* 给一个n行m列的迷宫,'S'表示迷宫的起点,'T'表示迷宫的终点, '*'表示不能通过的点,'.'表示可以通过的点。现在要求从'S'出发走到'T', 每次只能上下左右走动,并且只能进入能通过的点,每个点只能通过一次, 问是否能够到达终点可以的话求出最短路,如果不可以输出-1。 */ /* 测试数据: 5 6 ....S* ...

JohnnyLin 396

广度优先解决一维坐标移动问题java实现

题目如下 :    这题可以用广度优先搜索的算法来解决,首先,没移动一次有三个选择,给出起始点和最终点,那么我们只需要枚举出全部的解决方案,然后比较出最短的方案就可以了,但是这样很浪费时间空间,复杂度很高,实际上用不了,而搜索树可以简化搜索,广度优先是从搜索树从上往下扫描的,那么我在搜索的时候建立一个保存这个位置是否到达过的标记,用一个长度为n的一维数组来保存,因为我在入队的时候,到达相同位置,第...

ethonyLight的博客 648

习题 --- BFS

给定一个3×3的网格,里面有1到8这八个数字和一个'x',这个'x'其实是一个空格,里面没有数字,每次可以进行的操作是把一个现有的数字移到空格里面去,例如下面这张图,空格的位置如图所示,我们可以做的就是把空格周围的四个格子里面的数移到空格里面去,移动一次就算一次操作,第一种情况就是把1移下来,DFS第一次搜索到的节点不一定是沿着最短路搜索过去的,BFS第一次搜索到的节点一定是沿着最短路过去的。......

weixin_60569662的博客 609

BFS解决八数码问题-java

本文主要通过BFS广度优先搜索来解决八数码问题。提示:以下是本篇文章正文内容,下面案例可供参考上述也是通过BFS来解决最短路的问题,我们只要分清楚各个状态如何变化和存储,知道一个点是从哪个点抽象变化过来的,就可以解决这一类问题。

m0_63267251的博客 1694

BFS-走迷宫问题-java

​ BFS叫做广度优先搜索算法,通过BFS来实现一个走迷宫问题。 ​

m0_63267251的博客 1961

java_迷宫BFS

迷宫算法BFS import java.util.LinkedList; import java.util.Scanner; //迷宫BFS广度算法 public class maze_1 { static int[][] maze; static int x, y;//地图的大小 static int[] addx={-1,1,0,0};//x向量增加量 st...

青荣的博客 615

【Java每日一题,BFS】Catch That Cow

Introduction 张三想吃一顿全牛宴,所以用地上捡的石头雇佣傻子去为他抓牛 你可以将图视为一条只有x的坐标的轴 而你作为神通广大的傻子拥有两个能力 你可以让牛当前位置由x变为x+1或者x-1 你可以让牛当前位置由x变为2*x 你能得出你最少需要多少次操作能将牛赶往指定地点吗? Input 输入包含两个数字n,k分别代表牛的起始位置和目标地点的x坐标。 n,k均大于等于0且小于等于100000 Output 输出最少的操作次数 Sample input 5 17 output 4 Solution

小梁说代码的博客 181
上一篇: 习题:走迷宫2 (java bfs)
下一篇: 练习题:蒜头君回家(java bfs)
ArchitectDream
博客等级 码龄9年 48粉丝 288原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值