1.转换成直方图的做法:
参考:
https://leetcode.com/problems/maximal-rectangle/discuss/29059/Sharing-my-straightforward-C%2B%2B-solution-with-O(n2)-time-with-explanation
https://www.cnblogs.com/ariel-dreamland/p/9159219.html
利用leetcode84中的方法来做
首先要将给定的01矩阵转换成84中的直方图的样子。
每一行都对应一个直方图,且下一行直方图是由上一行直方图计算得到的。
如果是0,则当前直方图高为0,如果是1,则当前直方图高度是上一层对应位置高度+1
[
["1","0","1","0","0"], [1,0,1,0,0] //每一行都是一个直方图,值代表该位置的高度
["1","0","1","1","1"], [2,0,2,1,1]
["1","1","1","1","1"], [3,1,3,2,2]
["1","0","0","1","0"] [4,0,0,3,0]
]
比如第4行为底,则每一列的高度分别为4,0,0,3,0.可以看成高度分别为4,0,0,3,0的直方图
代码没看
2.动态规划方法:没看