问题描述
假设有一个 n × n 数组,其中 n 作为输入。数组中的数字也在输入中作为 n 行给出,每行有 n 个元素。此外,n 可以介于 1 和 450 之间,并且数组中的每个数字(让我们将每个数字定义为 f(i,j) 可以介于 1 和 200 之间,包括端值。现在我们想找出有多少个矩形子网格,使得f 的最小值正好是 88。所以程序应该找出这些子网格中有多少个。子网格可以只是一个元素,也可以是整个数组。
首先,我们知道在任何给定数组中都有 (n^2(n + 1)^2)/4 个子网格。找出一种使用高效算法编写此程序的方法。时间复杂度应低于 10^7,空间复杂度应低于 10^{10}。正如你所看到的,它必须是一个有效的算法。 (使用java)
3 * 3 数组的一些示例输入是其中 n(在本例中为 3)是第一行,接下来的 n 行构成构成数组的 n 个数字:
| 2 | 36 | 56 |
| 5 | 88 | 90 |
| 100 | 150 | 200 |
那么输出将是:4
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)