通过遍历在2D网格中查找峰值

时间:2016-03-01 15:56:51

标签: arrays algorithm multidimensional-array divide-and-conquer array-algorithms

我们有一个n乘n网格,左下角有坐标(0,0)和右上角(n,n)。网格中的单元格都具有不同的值,我们的目标是找到一个局部峰值,它被定义为一个值大于其左边,右边,上面和下面邻居的值的单元格(即对角线相邻的单元格不在&#39 ;重要)。

问题是,我们只能通过访问该单元格来查看单元格的值(即,我们无法在不首先执行(i + j)步骤的情况下检查(i,j)的值(0,0))。我们如何在O(n)步骤中找到局部峰值?

1 个答案:

答案 0 :(得分:0)

可以使用分而治之策略在O(nlgn)时间内计算。这比O(n ^ 2)时间复杂度类中包含的强力算法稍微好一点。

我在谷歌上发现了这个pdf。希望它会有所帮助。

Local maxima using Divide and Conquer