Python 基于值的最大元素组数组搜索算法
我需要一个搜索算法,可以找到最大的矩形大多是1的矩阵0和1;具体来说,我需要它返回这些矩形的左上角和右下角的(x,y)坐标对Python 基于值的最大元素组数组搜索算法,python,search,matrix,array-algorithms,Python,Search,Matrix,Array Algorithms,我需要一个搜索算法,可以找到最大的矩形大多是1的矩阵0和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)), re
例如,考虑下面的矩阵:
[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))}
是否有任何数组/矩阵搜索算法,我应该考虑作为这个任务的起点?< /P>
如果有什么重要的,我将使用python。因此,如果这样一个算法有python实现,那将非常感谢。我对这个问题的看法-我将矩阵转换为字典,其中键为位置(x,y),值等于0或1(当然,这不是最快的方法-使用NumPy肯定更好): 对于矩阵:
lst = [
1,1,0,0,0,
1,0,0,0,0,
0,0,0,1,1,
0,0,0,1,1,
0,0,0,1,1]
输出为:
0 0 1 1
3 2 4 3
3 3 4 4
你在用NumPy吗?更多的上下文可能会更好。您希望这些矩阵有多大?@TedBrownlow,我希望[15x15]到[20x20]大小matrices@AlexanderC埃西勒,努比是我的本意。我想这是我最快的选择;当然比嵌套列表要好。@j9000好吧,我来看看:)
lst = [
1,1,0,0,0,
1,0,0,0,0,
0,0,0,1,1,
0,0,0,1,1,
0,0,0,1,1]
0 0 1 1
3 2 4 3
3 3 4 4