【问题标题】:Finding peak in 2D grid with traversal通过遍历在 2D 网格中找到峰值
【发布时间】:2016-06-14 03:23:32
【问题描述】:

我们有一个 n×n 网格,左下角坐标为 (0,0),右上角坐标为 (n,n)。网格中的单元格都有不同的值,我们的目标是找到一个局部峰值,它被定义为一个单元格的值大于它的左、右、上、下邻居(即对角相邻的单元格没有问题)。

问题是,我们只能通过访问该单元格来查看该单元格的值(即,如果不先采取 (i+j) 步从 (0) 到达那里,我们就无法检查 (i,j) 的值) ,0))。我们如何在 O(n) 步中找到局部峰值?

【问题讨论】:

  • @BeyelerStudios 通过遍历网格(每个单元格),复杂度怎么可能是 O(n)。

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


【解决方案1】:

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

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

Local maxima using Divide and Conquer

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2019-08-12
    相关资源
    最近更新 更多