华为OD机试真题 Java 实现【计算网络信号】【2023Q2 200分】

news2024/10/7 12:25:46

在这里插入图片描述

一、题目描述

网络信号经过传递会逐层衰减,且遇到阻隔物无法直接穿透,在此情况下需要计算某个位置的网络信号值。

注意:

  1. 网络信号可以绕过阻隔物array[m][n]的二维数组代表网格地图,array[i][j]=0代表i行j列是空旷位置;
  2. array[i][j]=x(x为正整数)代表i行j列是信号源,信号强度是x;
  3. array[i][j]=-1代表i行j列是阻隔物。

信号源只有1个,阻隔物可能有0个或多个网络信号衰减是上下左右相邻的网格衰减1现要求输出对应位置的网络信号值。

二、输入描述

输入为三行,

  1. 第一行为m n,代表输入是一个m*n的数组;
  2. 第二行是一串m*n个用空格分隔的整数。每连续n个数代表一行,再往后n个代表下一行,以此类推。对应的值代表对应的网格是空旷位置,还是信号源,还是阻隔物;
  3. 第三行是i j,代表需要计算array[i][j]的网络信号值,注意:此处i和j均从0开始,即第一行i为0;

例如:

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
1 4

代表如下地图

需要输出第2行第1列的网络信号值。

三、输出描述

输出对应位置的网络信号值,如果网络信号未覆盖到,也输出0。

一个网格如果可以途经不同的传播衰减路径传达,取较大的值作为其信号值。

四、补充说明

  1. m不一定等于n,m<100,n<100,网络信号值小于1000;
  2. 信号源只有1个,阻隔物可能有0个或多个;
  3. 输入的m,n与第二行的数组是合法的,无需处理数量对不上的异常情况;
  4. 要求输出信号值的位置,不会是阻隔物

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int m = sc.nextInt();
    int n = sc.nextInt();
    int[][] arr = new int[m][n];

    //信号源横坐标
    int x = 0;
    //信号源纵坐标
    int y = 0;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            arr[i][j] = sc.nextInt();
            if (arr[i][j] > 0) {
                x = i;
                y = j;
            }
        }
    }
    //结果坐标
    int x1 = sc.nextInt();
    int y1 = sc.nextInt();
    get(x, y, arr);
    System.out.println(arr[x1][y1]);
}

public static void get(int x, int y, int[][] arr) {
    int m = arr.length;
    int n = arr[0].length;
    if (x < 0 || x > m || y < 0 || y > n) {
        return;
    }
    if (0 <= x && x < m && 0 <= y && y < n && arr[x][y] <= 1) {
        return;
    }
    int[][] arr2 = new int[][]{{0, -1}, {0, 1}, {-1, 0}, {1, 0}};
    for (int i = 0; i < arr2.length; i++) {
        int a = x + arr2[i][0];
        int b = y + arr2[i][1];
        if (0 <= a && a < m && 0 <= b && b < n) {
            if (arr[a][b] == -1) {
                continue;
            }
            if (arr[x][y] - 1 > arr[a][b]) {
                arr[a][b] = arr[x][y] - 1;
                // 递归
                get(a, b, arr);
            }
        }
    }
}

六、效果展示

1、输入

6 5
0 0 0 -1 0 0 0 0 0 0 0 0 -1 4 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
2 1

2、输出

0

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【获得完美走位】【2023Q1 100分】

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

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

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

相关文章

DAY 64 mysql主从复制与读写分离

概念 什么是读写分离? 读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) &#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要读写分离呢? 因为数据库的…

【Linux系列P2】Linux基本指令知识(带图演示,精炼)

前言 大家好&#xff0c;这里是YY的Linux系列part2&#xff1b;本章主要内容面向能使用Linux的老铁&#xff0c;主要内容含【设置普通用户】【Linux基本知识】【基本指令大全】 在下一章节【Linux系列part3】中,YY将手把手讲述Linux的权限知识&#xff0c;欢迎订阅YY的Linux专栏…

MyBatis 是什么?与 Hibernate 的区别是什么?

MyBatis 是一种基于 Java 的持久化框架&#xff0c;它可以将 SQL 语句和 Java 代码进行映射&#xff0c;使得开发人员可以使用面向对象的方式来操作数据库。MyBatis 通过提供 XML 配置文件或注解方式来配置映射关系&#xff0c;使得数据库操作变得更加简单和灵活。 与 Hiberna…

VS Code 配置 C/C++ 开发环境

一、软件下载 需要下载的软件如下&#xff1a; VS Code编译工具&#xff1a;MinGW 或 MSYS2 或 VS2022 VS Code 下载地址&#xff1a;链接 MinGW 下载地址&#xff1a;链接 或者 链接 MSYS2 下载地址&#xff1a;链接 VS2022 下载地址&#xff1a;链接 上述软件下载完成以后…

入门JavaScript编程:上手实践四个常见操作和一个轮播图案例

部分数据来源&#xff1a;ChatGPT 简介 JavaScript是一门广泛应用于Web开发的脚本语言&#xff0c;它主要用于实现动态效果和客户端交互。下面我们将介绍几个例子&#xff0c;涵盖了JavaScript中一些常见的操作&#xff0c;包括&#xff1a;字符串、数组、对象、事件等。 例子…

Java【TCP 协议2】好多人都错了! 保证可靠传输的不是三次握手和四次挥手! 而是...

文章目录 前言一、确认应答1, 什么是确认应答2, 序列号和确认应答号 二、超时重传1, 什么是超时重传 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系…

蓝牙RFCOMM 协议

蓝牙RFCOMM 1.RFCOMM1.1 服务定义模型1.2 字节排序 2 RFCOMM数据帧2.1 选项和模式2.2 帧类型2.3 帧格式2.3.1 Address2.3.2 Control&#xff08;帧类型&#xff09;2.3.3 Length2.3.4 InfoData2.3.5 FCS 2.4 多路复用控制命令&#xff08;DLCI 0&#xff09;2.4.1 DLC paramete…

OpenCV基础操作(4)颜色空间转换、几何变换、图像二值化操作

OpenCV基础操作(4)颜色空间转换、几何变换、图像二值化操作 import cv2 as cv import numpy as np一、颜色空间转换 1、转换颜色空间 在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种&#xff1a;BGR↔Gray 和 BGR↔HSV。 我们…

《面试1v1》volatile

基本功 我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 面试官&#xff1a; 你能解释一下 volatile 关键字的作用吗&#xff1f; 候选人&#xff1a; 当我们在编写多线程程序时&#xff0c;经常会遇到线程安全的问…

iptables防火墙(一)

iptables防火墙 一、iptables概述1、netfilter 与 iptables 的关系1.netfilter2.iptables 2、四表五链1.四表2.五链3.表的匹配优先级4.规则链之间的匹配顺序5.规则链内的匹配顺序 二、iptables防火墙的安装及配置方法1、iptables防火墙安装2、iptables防火墙的配置方法1.iptabl…

nginx(七十八)日志的深入探究

一 日志 ① nginx与日志相关的指令 access_log log_format error_log rewrite_log log_subrequest debug_connection rewrite_log limit_conn_log_level limit_req_log_level log_not_found open_log_file_cache uninitialized_variable_warn log_not_found …

【重新定义matlab强大系列八】利用matlab求局部值(函数islocalmax求局部最大值+函数islocalmin求局部最小值)

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

三控开关接线方式记录

参考原视频 三控开关与双控开关的多种接法&#xff0c;多控开关的工作原理_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Qh4y1J7gC/?spm_id_from333.337.search-card.all.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e原视频讲的不错&#xff0c;大家可以关…

国内好用的免费AI处理工具:Chat8(实现类似ChatGPT功能、TCP/IP通讯问题)

目前国外的ChatGPT比较火&#xff0c;朋友推荐了一个chat8&#xff0c;经过使用&#xff0c;觉得还不错&#xff0c;链接如下&#xff1a; https://ai.chat86.co/go/kl/775283&#xff0c;进去后可以直接用手机注册使用&#xff0c;以下是我问其关于TCP/IP的对话过程&#xff0…

(转载)从0开始学matlab(第11天)—关系运算符和逻辑运算符

选择结构的运算由一个表达式控制的&#xff0c;这个表达式的结果只有 true(1) 和 false(0)。有两种形式的运算符可以在 MATLAB 中关系得到 true/false&#xff1a;关系运算符和逻辑运算符。跟 C 语言一样&#xff0c; MATLAB 没有布尔型和逻辑数据类型。 MATLAB 把 0 …

模块一:k8s集群部署与安全配置

模块一&#xff1a;k8s集群部署与安全配置 目录 1、K8s安全运维概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PST6trat-1684674016197)(https://bucket-hg.oss-cn-shanghai.aliyuncs.com/img/1665822875941-73d822c8-7bdd-481c-acc1-df97b70c…

python爬虫实战——小说爬取

python爬虫实战——小说爬取 基于requests库和lxml库编写的爬虫&#xff0c;目标小说网站域名http://www.365kk.cc/&#xff0c;类似的小说网站殊途同归&#xff0c;均可采用本文方法爬取。 目标网站&#xff1a;传送门 本文的目标书籍&#xff1a;《我的师兄实在太稳健了》…

软件设计师第4题

首先&#xff0c;我是备考2023年上半年的考试。 一、历年考试题 历年的考题如下&#xff0c;从表中分析可以看出&#xff0c;动态规划法、排序算法、回溯法、分治法是很大概率考察的算法&#xff0c;尤其是动态规划法&#xff0c;本身其理解难度较高&#xff0c;且可以出的题型…

docker:容器的数据卷

1 数据卷概念及作用 1.1 什么是容器数据卷 先来看看Docker的理念&#xff1a; 将应用与运行的环境打包形成容器运行 &#xff0c;运行可以伴随着容器&#xff0c;但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据 Docker容器产生的数据&#xff0c;如果不通过…

什么是人工智能的知识图谱?知识图谱的组成、构建、应用有哪些?

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是一种通过计算机模拟人类智能的技术&#xff0c;其应用范围越来越广泛。知识图谱&#xff08;Knowledge Graph&#xff0c;KG&#xff09;则是人工智能技术中的重要组成部分&#xff0c;它是一种结构化…