如何解决# 网格内最小值为 88 的子网格数
假设有一个 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 举报,一经查实,本站将立刻删除。