gpt4 book ai didi

arrays - 通过仅检查 "open"索引的列表来查找网格中所有最大的开放矩形的列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:08:34 24 4
gpt4 key购买 nike

我有一个二维网格,其中有一些障碍物。

[x][x][ ]
[ ][ ][ ]
[ ][ ][x]

我希望能够找到“开放”网格单元的所有最大空间。

[x][x][ ]       [x][x][ ]
[1][1][ ] [2][2][2]
[1][1][x] and [ ][ ][x]

我看到了问题here这是相似的;但是,我可以访问的数据不是二维值数组。我有一个只有开放/可用索引的列表,它存储在一个一维数组中。使用上面的示例,我的数据如下所示:

[0,2]
[1,0]
[1,1]
[1,2]
[2,0]
[2,1]

我可以将它转换为二维数组,但我不想为此再次遍历所有项目。我觉得有一些非常简单的解决方案,但我似乎找不到。

有没有办法只通过检查开放索引列表来找到所有最大的矩形?

编辑我只是决定将开放索引数组更改为表示整个网格的二维数组,然后使用我链接到的算法。这对我的初始测试来说足够有效;但是,我有兴趣了解其他可能的解决方案,如果我需要更改我的实现以解决性能或空间问题。

最佳答案

当然。

要找到一个矩形:

  • 从任何空闲单元格开始。假设这将是左上角。
  • 看能不能横向扩展。
  • 看看能不能纵向延伸。
  • 回溯。

稍后我会对此进行详细说明,但我认为这可以让您快速入门。

关于arrays - 通过仅检查 "open"索引的列表来查找网格中所有最大的开放矩形的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com