Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于值的最大元素组数组搜索算法_Python_Search_Matrix_Array Algorithms - Fatal编程技术网

Python 基于值的最大元素组数组搜索算法

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的矩阵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)),
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