广东网站建设智搜宝重庆网站推广运营公司
web/
2025/10/5 17:58:17/
文章来源:
广东网站建设智搜宝,重庆网站推广运营公司,装潢设计专业可以报考一建吗,成都网站推广排名目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#xff09;》。
刷的越多… 目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
给你一个由’0’(空地)、‘1’(银矿)、‘2’(金矿)组成的地图矿堆只能由上下左右相邻的金矿或银矿连接形成。超出地图范围可以认为是空地。 假设银矿价值1金矿价值2请你找出地图中最大价值的矿堆并输出该矿堆的价值。
二、输入描述
地图元素信息如下
22220 00000 00000 11111
地图范围最大 300*3000 地图元素 2
三、输出描述
矿堆的最大价值
四、Java算法源码
package com.guor.od;import java.util.*;public class OdTest {// 地图矩阵static int[][] map;// 上下左右四个方向的偏移量static int[][] offsets {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};public static void main(String[] args) {Scanner sc new Scanner(System.in);int N Integer.valueOf(sc.nextLine());// 读入地图信息ArrayListString lines new ArrayList();for (int i 0; i N; i) {lines.add(sc.nextLine());}// 构建地图矩阵int rows lines.size();int cols lines.get(0).length();map new int[rows][cols];for (int i 0; i rows; i) {String line lines.get(i);for (int j 0; j cols; j) {map[i][j] line.charAt(j) - 0;}}// 记录最大矿堆价值int maxVal 0;// 遍历地图矩阵for (int i 0; i rows; i) {for (int j 0; j cols; j) {// 如果点(i,j)没有被访问过且点(i,j)上有矿则进入深搜if (map[i][j] 0) {LinkedListint[] stack new LinkedList();stack.add(new int[]{i, j});int sum 0;while (!stack.isEmpty()) {int[] pos stack.removeLast();int x pos[0], y pos[1];sum map[x][y];map[x][y] 0;// 遍历四个方向for (int[] offset : offsets) {int newX x offset[0];int newY y offset[1];// 如果新位置在地图范围内且有矿则加入栈中if (newX 0 newX rows newY 0 newY cols map[newX][newY] 0) {stack.add(new int[]{newX, newY});}}}// 更新最大矿堆价值maxVal Math.max(maxVal, sum);}}}System.out.println(maxVal);}
}五、效果展示
1、输入
4 22220 00000 00000 01111
2、输出
8 下一篇华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】感谢fly晨发现这个问题并提供更优质的算法
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87495.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!