污染水域【华为OD机试JAVA&Python&C++&JS题解】

159 篇文章 333 订阅 ¥9.90 ¥99.00
这篇博客介绍了如何使用广度优先搜索(BFS)解决污染水域问题。题目要求根据输入的二维数组判断多少天后所有水域会被污染。博主给出了Python、Java、C/C++和JavaScript四种语言的解题代码,并详细解释了每种语言的解题思路。代码利用BFS遍历污染源,逐步扩散污染,直到所有水域被污染或无法继续污染。
摘要由CSDN通过智能技术生成

一. 题目-污染水域

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

1、输入
1,0,1,0,0,0,1,0,1

2、输出
2

3、说明
转化为数组为:

1 0 1
0 0 0
1 0 1

第一天污染水域变为:

1 1 1
1 0 1
1 1 1

第二天全部被污染。

二.解题思路

这个问题可以使用广度优先搜索(BFS)来解决。下面是解题思路:

  1. 首先,将输入的一行字符串转换成一个N*N的二维数组,表示水域的状态,其中0表示纯净,1表示污染。

  2. 使用一个队列来进行BFS,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值