在二维网格上找到电站的算法

时间:2015-07-26 00:57:30

标签: algorithm search graph grid distance

http://i.imgur.com/v21Hnjb.png

如图所示,有一个带有Homes和PowerStations的2D网格。找出一种算法,为每个家庭找到最近的发电站。 我知道如何编写蛮力的一个,复杂度为O(m * n),其中m是住宅数量,n是发电站数量。但是,有人能提供更好的解决方案吗(可以假设发电站经常以这种方式定位)

1 个答案:

答案 0 :(得分:1)

如果输入是网格,请执行BFS。

首先,在队列中插入所有电站。然后像往常一样进行BFS稍作修改:你必须记住从哪个初始发电站访问每个添加的方块。

使用此算法,您可以自然地使用最近的发电站到达每个房屋。

复杂性为O(s^2)。其中s是网格的一面。