寻找最大价值的矿堆 - 矩阵

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、题目描述
  • 二、输入描述
  • 三、输出描述
  • 四、Java代码
  • 五、测试用例

前言

本人最近再练习算法,所以会发布一些解题思路,希望大家多指教

一、题目描述

给你一个由’0’(空地)、‘1’(银矿)、‘2’(金矿)组成的地图,矿堆只能由上下左右相邻的金矿或银矿连接形成。超出地图范围可以认为是空地。

假设银矿价值1,金矿价值2,请你找出地图中最大价值的矿堆并输出该矿堆的价值。

二、输入描述

地图元素信息如下:
22220
00000
00000
11111

地图范围最大 300*300
0 <=地图元素 <= 2

三、输出描述

矿堆的最大价值

四、Java代码

 	//存放每个节点对应上下左右相邻节点的差值static int[][] arr = new int[][]{{-1,0}, {1,0}, {0,-1}, {0,1}};public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.nextLine());int[][] arrays = new int[n][];//获取输入的矿堆信息for (int i = 0; i < n; i++) {arrays[i] = Arrays.stream(sc.nextLine().split("")).mapToInt(Integer::parseInt).toArray();}//初始化最大能量int max = 0;int sum = 0;for (int i = 0; i < arrays.length; i++) {for (int j = 0; j < arrays[i].length; j++) {if(arrays[i][j]>0){//每次计算能量堆时,将sum值重置为0sum = 0;//递归调用该矿点相邻的所有矿堆能量求和sum = dfs(sum, arrays, i, j);}max = Math.max(max, sum);}}System.out.println(max);}private static int dfs(int sum, int[][] arrays, int i, int j) {sum += arrays[i][j];arrays[i][j] = 0;for (int k = 0; k < arr.length; k++) {int x = i + arr[k][0];int y = j + arr[k][1];if(x >=0 && x < arrays.length && y >= 0 && y < arrays[i].length && arrays[x][y] > 0){sum = dfs(sum, arrays, x, y);}}return sum;}

五、测试用例

输入:
4
22220
22222
02000
11111

输出:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

blender 制作圆角立方体模型,倒角实现。cocos 使用。导出fbx

图片&#xff1a; 步骤&#xff1a; 1.首先创建一个立方体&#xff0c;这里可以使用默认的立方体。 2.在属性面板选择如“扳手”图标一样的修改器工具。 3.设置数量和段数实现圆角的圆滑效果&#xff0c;没有菱角。 保存导出相关的教程&#xff1a;

2024HW Linux应急响应基础学习

首先展示关于Linux的关键目录&#xff0c;这是应急响应查看的关键&#xff1a; 常用命令 top //查看进程资源的占用情况 ps -aux //查看进程 直接写ps aux也可以 netstat -antpl //查看网络连接 ls -alh /proc/pid //查看某个pid对应的可执行程序 pid记得修改 lsof /…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):Lab01 神经元和层

目录 导入Tensorflow的库无激活函数 vs 有激活函数&#xff1f;1.无激活函数2.有激活函数 无激活函数的神经元-回归/线性模型1.创建训练集散点图2.创建层3.层输入4.获取层参数5.层参数的形状6.手动设置层的参数7.层计算vs线性回归模型计算 有激活函数sigmoid的神经元1.创建训练…

【FX110】台湾修改洗钱法已加强对虚拟资产的监管

台湾正在通过修订《洗钱控制法》加强其反洗钱法规&#xff0c;使其法律与亚太反洗钱组织 (APG) 制定的国际标准保持一致。 此次修正案的重点是将虚拟资产和虚拟资产服务提供商置于台湾反洗钱制度的严格监管之下。修订后的法律对“虚拟资产”和“虚拟资产服务提供商”增加了明确…

CH340 RTS DTR引脚编程驱动OLED

我们常用的四线OLED就是IIC通信的&#xff0c;那么我们能不能用ch340来模拟一个IIC呢&#xff0c;当然可以我移植了中景园的OLED驱动&#xff0c;接下来就是见证奇迹的时刻&#xff0c;成功点亮&#xff0c;受限于CH340的引脚速度&#xff0c;模拟IIC的通信速度只有3k左右 注意…

centos7.9系统rabbitmq3.8.5升级为3.8.35版本

说明 本文仅适用rabbitmq为RPM安装方式。 升级准备 查看环境当前版本&#xff1a; # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # rabbitmqctl status Status of node rabbitmq01 ... RuntimeOS PID: 19333 OS: Linux Uptime (seconds): 58 Is under …

React 第三十一章 虚拟DOM

面试题&#xff1a;什么是虚拟DOM&#xff1f;其优点有哪些&#xff1f; 标准且浅显的答案 虚拟dom本质上就是一个普通的 JS 对象&#xff0c;用于描述视图的界面结构 虚拟 DOM 最早是由 React 团队提出来的&#xff0c;因此 React 团队在对虚拟 DOM 的定义上面有绝对的话语权。…

bitmap requires a valid src attribute

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、问题记录四、 推…

深度剖析Comate智能产品:科技巧思,实用至上

文章目录 Comate智能编码助手介绍Comate应用场景Comate语言与IDE支持 Comate安装步骤Comate智能编码使用体验代码推荐智能推荐生成单测注释解释注释生成智能问答 Comate实战演练总结 Comate智能编码助手介绍 市面上现在有很多智能代码助手&#xff0c;当时互联网头部大厂百度也…

如何看待云计算的第三次浪潮?

如何看待云计算的第三次浪潮&#xff1f; 来自云栖大会的演讲你如何看待云计算的第三次浪潮&#xff1f;云计算的第三次浪潮将会给社会带来怎样的变革&#xff1f;开发者在云计算的第三次浪潮中将会有哪些机遇和挑战&#xff1f;机遇挑战 来自云栖大会的演讲 在2023云栖大会上…

linux性能监控之top

说完了atop和htop&#xff0c;我们在来说说Linux自带的top&#xff0c;我们先看看命令效果&#xff1a; 可以看到是一个实时的系统监控工具&#xff0c;提供了一个动态的、交互式的实时视图&#xff0c;显示系统的整体性能信息以及正在运行的进程的相关信息。 我们先来解析下命…

Linux磁盘IO、网络IO、零拷贝详解

一、什么是I/O&#xff1f; 在计算机操作系统中&#xff0c;所谓的I/O就是输入&#xff08;input&#xff09;和输出&#xff08;output&#xff09;,也可以理解为读&#xff08;read&#xff09;和写&#xff08;write&#xff09;,针对不同的对象&#xff0c;I/O模式可以划分…