华为OD 污染水域(200分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明
你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。
B卷对应往年部分考题以及新出的题目。
我将持续更新最新题目

我精选了一部分题目免费分享给大家,可前往夸克网盘转存,请点击以下链接进入:

我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可转存。
链接:https://pan.quark.cn/s/f1a7e6aec5ac

题目类型:图
题目描述:
输入一行字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染。
数组中只有0和1,0表示纯净,1表示污染,每天只可污染上下左右的水域,如果开始全部被污染,或永远无法污染,则返回-1。

示例
输入
1,0,1,0,0,0,1,0,1

输出
2

思路分析
这道题是典型的图的多源BFS问题,可以参考【Leetcode】图的多源BFS详解加强对图的多源BFS方法的学习。

这道题跟leetcode:1162. 地图分析意思是一样的,都是从多个源点开始,向四周扩展,问多少次能扩展完。

解题流程:

先把所有的污染源都入队
然后从各个污染源同时开始一圈一圈的向净水扩散,
那么最后扩散

你可能感兴趣的:(华为OD【Java】,1024程序员节)