【发布时间】:2013-04-12 10:08:40
【问题描述】:
我有一个正方形矩阵和一个较小的正方形,它在矩阵内所有可能的位置移动(不会超出矩阵)。我需要在所有可能的重叠中找到最小的数字。
问题是两者的大小都可以达到数千。有什么快速的方法吗?
我知道一种方法 - 如果有一个数组而不是矩阵和一个窗口而不是正方形,我们可以使用 deque 在 linear 时间内做到这一点。
提前致谢。
编辑:示例
矩阵:
1 3 6 2 5
8 2 3 4 5
3 8 6 1 5
7 4 8 2 1
8 0 9 0 5
对于一个大小为 3 的正方形,总共可能有 9 个重叠。对于每个重叠,矩阵形式的最小数字是:
1 1 1
2 1 1
0 0 0
【问题讨论】:
-
听起来你想执行二维相关。取决于您使用的语言和库,但有一些有效的方法:例如stackoverflow.com/questions/1100100/…
-
@MrE 是的,它类似于相关性,但不是 - 相关性是线性空间过滤器,但这是非线性的。另外我不能使用任何库。
-
什么是“所有可能的重叠中最小的数”?
-
@ypnos 说了什么 - 那么操作是什么?你能给我们展示一个输入和输出的玩具例子吗?
-
@ypnos 更新了,请看。
标签: algorithm data-structures matrix