【发布时间】:2018-09-04 13:45:45
【问题描述】:
给定一个 1 和 0 的矩阵 (n x n),其中 1 代表土地,0 代表水。 如何以最有效的方式找到土地面积的中位数?
例如:
1 1 0 0 0
1 0 0 1 1
1 0 1 0 0
一共有三个岛,面积为[1,2,4],中位数为2
一个岛可以由连续的非对角单元组成,其中包含 1: 例如:
1 0 1
0 1 0
这个矩阵包含三个区域[1,1,1]
我的解决方案是递归地找到这些区域,然后对它们进行排序以找到需要 O(n^2log(n^2)) 的中位数,有没有更有效的方法来做到这一点?
【问题讨论】:
-
您只需要中间值,还是要识别具有中间值的岛?此外,如果您澄清“岛屿”的含义,这将有所帮助。
-
我已经编辑了这篇文章
标签: algorithm performance sorting data-structures