题目要求找到离最近的电力设施距离最大的区域,并求该距离。
可以使用广度优先搜索的方法解决此题。初始所有有电力区域的距离均为0,并不断通过这些区域节点向外扩展新的区域节点,同时将新的区域节点加入到队列中。
由于广度优先搜索的性质,可以保证每个新扩展到的区域节点的值都是该区域离其最近的电力区域的值,因此最后的答案就是所有值中的最大值。
由于每个区域节点最多被扩展一次,一共有n∗n个节点。因此时间复杂度为O(N2)
小友负责维护公司的电力供应网络。公司由n∗n的网格组成,每个单元格代表一个区域,区域中有些有电力设施(用1表示),有些则没有(用0表示)。为了保证公司的电力供应,必须让每个没有电力设施的区域能够尽量靠近一个有电力设施的区域。
你需要找到一个没有电力设施的区域,这个区域到最近的有电力设施的区域的距离是最大的,并返回该举例。如果整个公司都是有电力设施的区域或者没有电力设施的区域,请返回-1。
注意:(x0,y0)和 (x1,y1)这两个区城之间的距离是 |x0-x1| + |y0-y1|。
输入整数N
输入代表公司各个区域是否有电力设施的N∗N矩阵的各个元素。
输出整数distance,代表所有无电力设施区域中到最近的有电力设施区域距离的最大值。
n==grid.length==grid[i].length
2≤n≤100
grid[i][j]为0或1
grid中至少有1个0和1个1
输入
3
1 0 1
0 0 0
1 0 1
输出
2
本题属于以下题库,请选择所需题库进行购买