剑指 Offer II 040. 矩阵中最大的矩形
创始人
2025-05-29 07:55:54

动态规划+栈

方法一仅动态规划:

  1. 仅求行的和,当位置本身未0时则,依次点为中心的矩阵皆为0,若当前位置为1,则该位置左侧值+1,这样我们可以求去以当前位置为右下角的矩阵的宽度

  1. 我们从该位置向上看,来寻找以该位置为右下角的最大矩阵面积,最合适的宽度*最合适的高度,算出面积与最大值做比较,选择最大值保存

class Solution {
public:int maximalRectangle(vector& matrix) {// 动态规划,如果当前位置是1,那么当前位置观看上和左的值// 自作向右遍历,自上向下遍历// 注意判断四个边界if(matrix.empty()){return 0;}int row = matrix.size();int col = matrix[0].size();vector> path(row+1,vector(col+1,0));int max_val = 0;for(int i=0;i=0&&path[k][j]!=0){// 计算目前矩阵的面积col_min = min(col_min,path[k][j]); // 可以获得目前矩阵的宽int h = i-k+1;    // 目前矩阵的高max_val = max(max_val,h*col_min);    // 计算面积与最大面积比较k--;}}else {if(matrix[i][j] == '0'){path[i][j] = 0;}else{path[i][j]=path[i][j-1]+1;}// 向上看寻找合适的矩阵int k = i;int col_min = 201;  // 用来标记列中的最小值while(k>=0&&path[k][j]!=0){// 计算目前矩阵的面积col_min = min(col_min,path[k][j]); // 可以获得目前矩阵的宽int h = i-k+1;    // 目前矩阵的高max_val = max(max_val,h*col_min);    // 计算面积与最大面积比较k--;}}cout<

相关内容

热门资讯

百米炮仗花长廊盛放,橙红瀑布倾... 刷爆朋友圈、霸屏短视频,最近南宁人的春日快乐,被一条百米炮仗花长廊狠狠承包了。2月12日,暖阳洒向邕...
多所高校推出一分钱年夜饭,年味... 春节即将来临,年味愈加浓厚。对于选择留在校园过年的同学们来说,年夜饭成了一个热门话题。那么,留校过年...
【客家】不蒸甜粄不过年!客家人... 客家人有“不蒸甜粄不过年”的说法,在琳琅满目的年货里,甜粄是绝对的主角,更是亲戚拜年赠礼的首选。每逢...
马年开运指南!麦玲玲现身广州花... “玲玲姐有什么能帮大家马年行大运的技巧,可以教给街坊们?” “你还记得若曦吗?”…… 2月12日,春...