【发布时间】:2019-11-21 23:24:26
【问题描述】:
我需要一种搜索算法,它可以在 0 和 1 的矩阵中找到大部分为 1 的最大矩形;具体来说,我需要它返回这些矩形左上角和右下角的 (x,y) 坐标对。
例如,考虑以下矩阵:
[1,1,0,0,0,
1,0,0,0,0,
0,0,0,0,0,
0,0,0,1,1,
0,0,0,1,1]
如果我将阈值设置为 75%(矩形的平均值为 0.75),则会在矩阵的左上角和右下角找到两个矩形(特别是正方形)。每个点的元组输出将是左上角 (x,y)、右下角 (x,y)。
{rectangle_1: ((0,0),(1,1)),
rectangle_2: ((3,3),(4,4))}
我应该考虑将任何数组/矩阵搜索算法作为这项任务的起点吗?
如果它很重要,我将使用 python。所以如果这样的算法有python实现,那将不胜感激。
【问题讨论】:
-
你在使用 NumPy 吗?更多上下文会更好。
-
您希望这些矩阵有多大?
-
@TedBrownlow ,我期待 [15x15] 到 [20x20] 大小的矩阵
-
@AlexanderCécile,numpy 是我的意图。我认为这是我最快的选择;肯定比嵌套列表好。
-
@j9000 好的,我去看看:)
标签: python search matrix array-algorithms