输入 N - 矩阵的大小,K - 子矩阵的大小。
接下来引入一个矩阵
Let N = 3, K = 2
我们的 N*N 矩阵
1 2 1
1 1 2
1 1 1
所有大小为 K*K 的子矩阵:
[1 2
1 1]
[2 1
1 2]
[1 1
1 1]
[1 2
1 1]
如何对子矩阵进行相同的发现?从什么推回来?他唯一做的就是创建一个由 k*k 矩阵组成的三维数组,其中填充了零。
输入 N - 矩阵的大小,K - 子矩阵的大小。
接下来引入一个矩阵
Let N = 3, K = 2
我们的 N*N 矩阵
1 2 1
1 1 2
1 1 1
所有大小为 K*K 的子矩阵:
[1 2
1 1]
[2 1
1 2]
[1 1
1 1]
[1 2
1 1]
如何对子矩阵进行相同的发现?从什么推回来?他唯一做的就是创建一个由 k*k 矩阵组成的三维数组,其中填充了零。
如果在额头上,那么像这样:
粗略地说,需要遍历矩阵,使子矩阵的1个元素在范围内:
matrix_width - submatrix_width,matrix_height - submatrix_height然后使用第一个元素的坐标,找到矩阵中子矩阵的所有其他元素
或者如果这是在公式级别编写的,那么:
其中 (i, j) 是矩阵中子矩阵的第一个(左上)元素的坐标
附言
代码可以稍微简化(对于放荡的爱好者):
如果将初始矩阵表示为平面列表,那么解决方案相当简单,并且适合一行。