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

华为OD机试真题【西天取经】

1、题目描述

【西天取经】
唐僧师徒四人去西天取经,一路翻山越岭。一日,师徒四人途径一个 mxn 长方形区域,已知
1.将取经队伍作为一个整体,4 人行走相同路线。
2.取经队伍的起点为该长方形区域的左上角,目的地为该长方形区域的右下角
3.行走路线可以向前、后、左、右四个方向前进 (不允许超出该长方形区域)
4.输入包含该区域的长 m 和宽 n、前后移动允许的高度差 t,以及该长方形区域内各点的高度 h。
5.要求该区域内相邻两次移动的高度差在高度 t 范围以内。取经队伍最多有 3 次爆发机会,每使用一次爆发机会,可以让取经队伍一次移动突破高度差限制
请问取经队伍通过该区域最小的移动次数是多少?返回 -1 表示师徒四人无法直接通过该区域。

【输入描述】
输入第一行为三个整数,分别对应为长方形场地的两条边长,和前后移动允许的高度差。三个整数之间以空格分割。
后面是m行,每行n列个数据,表示长方形场地各点的高度。数据之间以空格分割。
0<m,n<=200,0<t<=20
每个点的高度hin满足0<=h[i,j]<=4000,0<=i<m 0<=j<n。

【输出描述】
取经队伍通过该区域最小的移动次数

【示例一】
4 4 10
10 20 30 40
100 120 140 160
200 230 260 290
300 400 500 600
输出
6

【示例二】
输入
1 10 1
11 12 200 14 15 16 317 18 19 20
输出
-1

2、解题思路

该题是从左上角到右下角,与上班之路一样的思路,从左上角开始向上、下、左、右遍历,取到达右下角的最小移动步数。

3、参考代码

import java.util.Scanner;/*** @Author * @Date 2023/5/7 12:20*/
public class 西天取经 {public static int[][] dis = new int[][] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};public static int res = Integer.MAX_VALUE;public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {int m = in.nextInt();int n = in.nextInt();int k = in.nextInt();int[][] arr = new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {arr[i][j] = in.nextInt();}}res = Integer.MAX_VALUE;for (int i = 0; i < dis.length; i++) {boolean[][] used = new boolean[m][n];used[0][0] = true;dfs(arr, dis[i][0], dis[i][1], k, 1, used, 3);}if (res == Integer.MAX_VALUE) {System.out.println(-1);} else {System.out.println(res);}}}public static void dfs(int[][] arr, int i, int j, int k, int sum, boolean[][] used, int bf) {int m = arr.length;int n = arr[0].length;if (i < 0 || i >= m || j < 0 || j >= n) {return;}// 到达右下角if (i == m - 1 && j == n - 1) {// 取移动步数最小的结果res = Math.min(res, sum);return;}used[i][j] = true;// 分别遍历四个方向for (int l = 0; l < dis.length; l++) {int newI = i + dis[l][0];int newJ = j + dis[l][1];if (newI < 0 || newI>= m || newJ < 0 || newJ >= n) {continue;}if (used[newI][newJ]) {continue;}if (Math.abs(arr[i][j] - arr[newI][newJ]) <= k) {dfs(arr, newI, newJ, k, sum + 1, used, bf);} else {if (bf == 0) {  // 爆发次数用完了continue;}dfs(arr, newI, newJ, k, sum + 1, used, bf - 1);}}used[i][j] = false;}
}

4、相似题目

(1)士兵突击
(2)上班之路

相关文章:

华为OD机试真题【西天取经】

1、题目描述 【西天取经】 唐僧师徒四人去西天取经&#xff0c;一路翻山越岭。一日&#xff0c;师徒四人途径一个 mxn 长方形区域&#xff0c;已知 1.将取经队伍作为一个整体&#xff0c;4 人行走相同路线。 2.取经队伍的起点为该长方形区域的左上角&#xff0c;目的地为该长方…...

心电信号时域特征分析与Python实现

目录 1 引言 2 心电信号时域特征的含义 3 Python实现心电信号时域特征提取 4 结论 1 引言 心电信号是由心脏电活动引起的电信号...

认识MyBatis 之 MyBatis的动态SQL

前言 本篇介绍MyBatis里如何使用动态SQL&#xff0c;了解如何去简单使用动态标签&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言MyBatis - 动态 SQLif标签trim标签where标签update set 标签delet…...

【项目 计网2】4.4网络模型 4.5协议 4.6网络通信的过程

文章目录 4.4网络模型OSI七层参考模型TCP/IP四层模型&#xff08;常用&#xff09;简介四层介绍 4.5协议简介常见协议UDP协议TCP协议IP协议以太网帧协议&#xff08;MAC地址封装&#xff09;ARP协议&#xff08;IP->MAC&#xff09; 4.6网络通信的过程封装分用 4.4网络模型 …...

redis入门3-在java中操作redis

Redis的java客户端 Jedis、Lettuce、Redisson、以及spring提供的spring data redis Jedis操作redis //添加依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.8.0</version> </dep…...

网络安全预警分类流程

网络安全预警指南 随着信息技术的广泛应用与快速发展&#xff0c;传统业务与信息系统的融合程度不断加深&#xff0c;网络安全对国家政治、经济、文化、公共服务活动的影响进一步增大。网络安全形势日趋复杂&#xff0c;安全威胁不断变化&#xff0c;利用网络漏洞、恶意程序从…...

SpringBoot复习:(20)如何把bean手动注册到容器?

可以通过实现BeanDefinitionRegistryPostProcessor接口&#xff0c;它的父接口是BeanFactoryPostProcessor. 步骤&#xff1a; 一、自定义一个组件类&#xff1a; package com.example.demo.service;public class MusicService {public MusicService() {System.out.println(&q…...

VLT:Vision-Language Transformer用于引用的视觉语言转换和查询生成分割

摘要 在这项工作中&#xff0c;我们解决了引用分割的挑战性任务。引用分割中的查询表达式通常通过描述目标对象与其他对象的关系来表示目标对象。因此&#xff0c;为了在图像中的所有实例中找到目标实例&#xff0c;模型必须对整个图像有一个整体的理解。为了实现这一点&#…...

【开源项目--稻草】Day04

【开源项目--稻草】Day04 1. 续 VUE1.1 完善VUEAJAX完成注册功能 Spring验证框架什么是Spring验证框架使用Spring-Validation 稻草问答-学生首页显示首页制作首页的流程开发标签列表标签列表显示原理 从业务逻辑层开始编写控制层代码开发问题列表开发业务逻辑层开发页面和JS代码…...

【数模】奇异值分解SVD和图形处理

介绍奇异值分解在图形压缩中的运用&#xff0c;并将简单介绍下Matlab对于图形和视频的处理 一、奇异值分解介绍 1.1 基本概念 奇异值分解(Singular Value Decomposition&#xff0c;以下简称SVD)是线性代数中一种重要的矩阵分解&#xff1a; U和V都是正交矩阵∑是奇异值矩阵&…...

mongodb-win32-x86_64-2008plus-ssl-3.6.23-signed.msi

Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>cd C:\MongoDB\Server\3.6\binC:\MongoDB\Server\3.6\bin> C:\MongoDB\Server\3.6\bin> C:\MongoDB\Server\3.6\bin>mongod --dbpath C:\Mongo…...

华为Euler系统忘记密码之密码重置

目录 1. 进入GRUB引导菜单编辑模式2. 指定系统在启动时使用/bin/sh作为初始化进程3. 修改密码3.1 重新挂载文件系统&#xff0c;使文件系统可写3.2 修改密码3.3 重新标记文件的安全上下文 4. 开机输入修改的密码正常登录 1. 进入GRUB引导菜单编辑模式 启动openEuler&#xff0…...

Java-多线程-深入理解ConcurrentHashMap

目录 什么是ConcurrentHashMap&#xff1f;为什么有ConcurrentHashMap&#xff1f;和HashMap区别示例代码对比 JDK7和JDK8中ConcurrentHashMap整体架构的区别JDK7中JDK8中 ConcurrentHashMap的基本功能在性能方面的优化使用到的技术-CAS概念说明比较并交换的过程如下&#xff1…...

没有配置redis但是报错连接redis失败

问题 没有配置redis但是报错连接redis失败 检查maven配置是否引入了redis依赖&#xff08;可能是传递依赖&#xff0c;最好检查引进来的公共工程 解决办法 只需要在该工程application.yml文件中配置一下 redis就好&#xff0c;或者移除redis依赖 spring:redis:password: hos…...

剑指 Offer 04. 二维数组中的查找

力扣 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右 非递减 的顺序排序&#xff0c;每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 matrix…...

【工作中问题解决实践 九】Spring中事务传播的问题排查

最近在工作中遇到了两个关于事务操作的问题&#xff0c;顺便就着这两个问题又回顾了一遍Spring的事务相关的操作&#xff0c;想着一次性把这个问题研究明白了&#xff0c;后续使用事务的时候也能踏实点&#xff0c;让事务发挥真实的作用 什么是事务&#xff1f;什么是事务管理…...

【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

这篇文章&#xff0c;主要介绍如何使用JavaFreemarker模板引擎&#xff0c;根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;创建Freemarker工具类 &…...

Devart dbForge Studio for MySQL Crack

Devart dbForge Studio for MySQL Crack dbForge Studio for MySQL是一个用于MySQL和MariaDB数据库开发、管理和管理的通用GUI工具。IDE允许您通过直观的界面创建和执行查询、开发和调试存储例程、自动化数据库对象管理、分析表数据。MySQL客户端提供了数据和模式比较和同步工具…...

C++、Java、JavaScript和python几个语句的对比介绍

C、Java、JavaScript和python几个语句的对比介绍 C、Java、JavaScript和python语言的for语句 C、Java和JavaScript的for语句的语法类似如下&#xff1a; for (初始条件; 循环条件; 循环后操作) { // 循环体代码 } 初始条件是在进入循环之前执行的语句&#xff0c;初始化循环…...

第20节 R语言医学分析:某保险医疗事故赔偿因素分析

文章目录 某保险医疗事故赔偿因素分析源码源文件下载某保险医疗事故赔偿因素分析 我们分析数据集“诉讼”的第一个方法是确定样本数量、变量类型、缩放/编码约定(如果有)用于验证数据清理。 接下来,数据集看起来很干净,没有缺失值,并且对于分类变量,将编码约定替换为实际…...

Next-MDX-Remote部署指南:从开发到生产环境的完整流程

Next-MDX-Remote部署指南&#xff1a;从开发到生产环境的完整流程 【免费下载链接】next-mdx-remote Load mdx content from anywhere through getStaticProps in next.js 项目地址: https://gitcode.com/gh_mirrors/ne/next-mdx-remote Next-MDX-Remote 是一款强大的 N…...

实战应用:用快马平台将dc=y103pc=参数转化为电商筛选功能

今天想和大家分享一个在电商项目中特别实用的功能开发经验——如何把URL参数&#xff08;比如dcy103&pchigh这种格式&#xff09;转化成用户友好的商品筛选面板。这个需求在实际业务中特别常见&#xff0c;比如用户分享一个筛选好的商品列表链接&#xff0c;其他人打开时能…...

视频画面匹配软件 影视片段匹配软件出售 创作效率提升 速橙软件-相同视频片段匹配系统

免费下载链接&#xff1a;http://www.suchengai.cn/作为一名视频创作者或影视解说博主&#xff0c;你是否经常面临这样的困境&#xff1f;为了制作一个10分钟的视频解说&#xff0c;需要花费数小时甚至一整天的时间&#xff0c;在原始影片中手动查找和剪辑对应的片段。这不仅效…...

python基于Hadoop的就业推荐系统的设计与实现 Spark+Hadoop+Hive 大数据 深度学习 机器学习

前言随着就业市场信息不对称问题日益突出&#xff0c;开发高效的智能就业推荐系统 成为当务之急。本研究基于Hadoop生态系统&#xff0c;设计并实现了一套面向求职者和招聘企业的智能推荐系统。系统采用分布式架构&#xff0c;后端基于Django框架实现业务逻辑处理&#xff0c;前…...

像素剧本圣殿一文详解:复古未来像素美学×专业剧本格式输出规范

像素剧本圣殿一文详解&#xff1a;复古未来像素美学专业剧本格式输出规范 1. 工具概览与核心价值 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款专为影视、游戏编剧设计的AI创作工具。基于Qwen2.5-14B-Instruct大模型深度微调&#xff0c;它巧妙融合了8-Bi…...

Graphormer部署案例:中小企业AI药物研发团队低成本GPU算力部署方案

Graphormer部署案例&#xff1a;中小企业AI药物研发团队低成本GPU算力部署方案 1. 项目背景与价值 在药物研发领域&#xff0c;分子属性预测是核心环节之一。传统实验方法成本高昂且周期漫长&#xff0c;而Graphormer作为基于纯Transformer架构的图神经网络&#xff0c;为这一…...

【等保三级Java安全加固实战指南】:20年专家亲授7大高危漏洞修复清单与合规落地路径

第一章&#xff1a;等保三级Java安全加固的合规基线与实施全景图等保三级对Java应用系统提出了覆盖身份鉴别、访问控制、安全审计、通信保密性、代码安全及运行环境防护等多维度强制性要求。其合规基线并非单一技术点的叠加&#xff0c;而是以《GB/T 22239-2019 信息安全技术 网…...

git clone git@github.com: Permission denied (publickey)权限拒绝问题

一、前言最近在部署detectron2&#xff08;Facebook开源的目标检测框架&#xff09;时&#xff0c;执行克隆命令&#xff1a;git clone gitgithub.com:facebookresearch/detectron2.git终端直接抛出如下错误&#xff1a;Cloning into detectron2... gitgithub.com: Permission …...

音乐自由之路:Unlock-Music技术突破实战指南

音乐自由之路&#xff1a;Unlock-Music技术突破实战指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https://gitcod…...

Cursor Composer 2 技术报告拆解:MoE 预训练、RL 环境设计与 CursorBench 基准的工程实践

在生产级代码仓库里&#xff0c;一个 AI Agent 面对的往往不是“实现某个功能”这样清晰的任务&#xff0c;而是“新特性上线后出现诡异 bug&#xff0c;日志里只有 954 个 JSON 响应&#xff0c;栈踪迹完全不可靠”。它必须自己跨文件定位、写启发式检测器、调参避免误报&…...