【发布时间】:2014-02-05 06:28:06
【问题描述】:
我解决这个问题的方法效率很低。
我的解决方案:我发现,对于 4x4 网格(2d 数组)中的每个值,都以 3x3 网格为中心。然后我对这个网格求和,添加到一个数组中,然后一旦找到每个 3x3 网格,我就会在新数组中找到最大的和。
根据我的教授的说法,这是“我们正在使用的网格大小的一个很好的解决方案”。但是存在一个更有效的解决方案,他给了我提示
提示更有效的解决方案:“一个可能有用的提示:将其视为最大化二维积分,将网格视为(行,列)的函数。”
需要明确的是,我的解决方案得到了充分肯定。我完全不知道如何开始编写更有效的解决方案。
【问题讨论】:
-
一个想法是首先总结所有 2x2 网格,但我不知道这是否是您的教授所指的改进。
-
但是最大的 2x2 网格可能不会导致最大的 3x3 网格,难道没有例外吗?
-
不,总和将用于计算 3x3 网格。但这对于 3x3 可能不是一个非常有用的改进,因为它对于 4x4(这只是它们的 4 个 2x2 的总和)。
标签: java arrays grid integration mathematical-optimization