输入:整形矩阵
输出:子矩阵的最大累加和
参见一维最大累加和:
算法:经典题六 题目六 数组中子数组最大累加和
在二维上,利用一维累加和形式,在每一步记录的最大累加和填充二位dp
大流程,必定遍历
0~0一行,0~2行,0~3行,。。。0~N-1行
1~1行,1~2,。。。1-N~1行
2~2行,。。。2~N-1行
...
在这个大流程中,还有中间的 0~M-1列也是这样的框架嵌入进去,
但是中间可以利用之前N次的N遍历,求出二维dp[i][j]代表i行中,只针对i行0-j列范围里子数组最大累加
然后可以在跨行列的时候,累加大于=0就可以继续跨
还有一个小优化点:行多列小,就进行转置:减少行的整体流程的复杂度