我有一个相当典型的问题。我知道这里可能有类似的主题,但请理解我是一个初学者,不了解这个问题的不同版本。有时文本中的小差异和算法可能完全不同。所以问题是:
For a given 2<=a,b<=1000 and 1<=c<=Min(a,b) find in matrix a x b square c x c
with the largest sum of elements. The elements in matrix are from -1000 to 1000.
我可以编写一个算法,在矩阵的每个点(x,y)上,计算一个正方形(x,y),(x+c,y),(x,y+c),(x+c,y+c)的总和,然后选择最大的总和。在这些限制条件下,我认为它可能会很快,但是否有更快的算法?我不擅长计算算法复杂度,但它似乎是O(a*b*c*c)。如果我没有错的话,在最坏的情况下它可能不会停止。