题目描述
2XXX年,人类通过对火星的大气进行宜居改造分析,使得火星已在理论上具备人类宜居的条件;由于技术原因,无法一次性将火星大气全部改造,只能通过局部处理形式;假设将火星待改造的区域为row * column的网格,每个网格有3个值,宜居区、可改造区、死亡区,使用YES、NO、NA代替,YES表示该网格已经完成大气改造,NO表示该网格未进行改造,后期可进行改造,NA表示死亡区,不作为判断是否改造完的宜居,无法穿过;初始化下,该区域可能存在多个宜居区,并目每个宜居区能同时在每个大阳日单位向上下左右四个方向的相邻格子进行扩散,自动将4个方向相邻的真空区改造成宜居区;请计算这个待改造区域的网格中,可改造区是否能全部成宜居区,如果可以,则返回改造的大阳日天教,不可以则返回-1。
输入描述
输入row * column个网格数据,每个网格值枚举值如下: YES,NO,NA;
样例:
YES YES NO
NO NO NO
NA NO YES
输出描述
可改造区是否能全部变成宜居区,如果可以,则返回改造的太阳日天数,不可以则返回-1。
备注
grid[i][j]只有3种情况,YES、NO、NA
row == grid.length
column == grid[i].length
1 ≤ row, column ≤ 8
该博客讨论了一道华为在线开发者测试(OD)题目,涉及火星表面改造以实现人类居住的模拟问题。题目要求判断一个二维网格中,通过宜居区的扩散能否将所有可改造区转变为宜居区。博客内容包括问题描述、输入输出要求及样例测试用例,挑战读者解决这个基于矩阵扩散的算法问题。
订阅专栏 解锁全文
4111

被折叠的 条评论
为什么被折叠?



