Python 如何映射元素并添加它们以计算最大平方和?

Python 如何映射元素并添加它们以计算最大平方和?,python,matrix,Python,Matrix,我找不到这个问题的python解决方案。给定一个大小为nxn的正方形数组,其中每个单元格将填充一个范围(9,-9)之间的数字。大小为k的子正方形是k个连续列和k个连续行的任意集合。对于任何子正方形,其单元格中的元素之和称为子平方和。在这里,我想找到最大平方和,可以用下面的例子来解释 约束条件 N 这将产生: [[2, -8, -4], [6, 9, 9], [9, 18, 9]] [[5, 7], [20, 18]] [[16]] 请张贴您的密码。2乘2的平方和是2-8-4 6 9 9 9 1

我找不到这个问题的python解决方案。给定一个大小为nxn的正方形数组,其中每个单元格将填充一个范围(9,-9)之间的数字。大小为k的子正方形是k个连续列和k个连续行的任意集合。对于任何子正方形,其单元格中的元素之和称为子平方和。在这里,我想找到最大平方和,可以用下面的例子来解释

约束条件 N 这将产生:

[[2, -8, -4], [6, 9, 9], [9, 18, 9]]
[[5, 7], [20, 18]]
[[16]]

请张贴您的密码。2乘2的平方和是2-8-4 6 9 9 9 18 9,这不是3乘3吗?您能重新格式化您的答案吗?我想有这么多打字错误。
2 -8 -4
6  9  9
9 18  9
 5  7
20 18
m = [
    [2, -8, 4, -6],
    [7, 1, -5, 3],
    [-9, 7, 6, 5],
    [8, 3, 2, -4]
]
n = len(m)
def square_sum(s):
    return [[sum(sum(r[j:j + s]) for r in m[i:i + s]) for j in range(n - s + 1)] for i in range(n - s + 1)]
print(square_sum(2))
print(square_sum(3))
print(square_sum(4))
[[2, -8, -4], [6, 9, 9], [9, 18, 9]]
[[5, 7], [20, 18]]
[[16]]