题目描述
输入一行字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染。
数组中只有0和1,0表示纯净,1表示污染,每天只可污染上下左右的水域,如果开始全部被污染,或永远无法污染,则返回-1。
输入描述
无
输出描述
无
用例
输入 1,0,1,0,0,0,1,0,1
输出 2
说明
输入转化为数组为:
1 0 1
0 0 0
1 0 1
第一天后水域变为
1 1 1
1 0 1
1 1 1
第二天全部被污染
输入 0,0,0,0
输出 -1
说明 无
解题思路:
- 首先将输入的字符串转换为二维数组。
- 然后遍历数组,找到所有纯净水域(0)的位置,将其加入队列。
- 初始化天数为0,当队列不为空时,进行以下操作:
a. 记录当前队列的长度。
b. 遍历队列中的每个位置,将其上下左右的纯净水域(0)加入队列,并将这些位置的值改为1。
c. 更新天数。 - 如果遍历完数组后仍有纯净水域(0),则返回-1,否则返回天数。