给出n*m的01矩阵,问由1组成的第二大的矩阵的大小是多少?
单调栈(or 悬线法)入门题
预处理出每一个点的最大高度,然后单调栈每一个点扫,一个点的左右高度不小于他的点就可以构成一个矩形,因此就可以求出矩形面积了。
预处理每个点的连续最左边,最右边,和最上面。同时一个点的最左边要小于等于他的正上方那个点的最左边,右边同理,即要满足,高度优先,尽量取左右边界,这样就可以取遍所以的极大矩形了。