zoukankan      html  css  js  c++  java
  • Maximal Rectangle [LeetCode]

    Problem Description: Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area.

    Basic idea: To increas one dimension by one, then calculate the maximum of other dimension every time.

     1 class Solution {
     2 public:
     3     int maximalRectangle(vector<vector<char> > &matrix) {
     4         // Note: The Solution object is instantiated only once and is reused by each test case.
     5         if(matrix.size() == 0 || matrix[0].size() == 0)
     6             return 0;
     7         int max_area = 0;
     8         int row = matrix.size();
     9         int column = matrix[0].size();
    10         for(int i = 0; i < row; i ++) {
    11             for( int j = 0; j < column; j ++) {
    12                 if (matrix[i][j] == '0')
    13                     continue;
    14                 
    15                 int tmp_area = 1;
    16                 int max_row_idx = row - 1;
    17                 int max_column_idx = j;
    18                 while(max_column_idx < column){
    19                     int l;
    20                     for(l = i + 1; l <= max_row_idx; l ++){
    21                          if (matrix[l][max_column_idx] == '0') 
    22                             break;
    23                     }
    24                     max_row_idx = l - 1;
    25                     tmp_area = (max_row_idx - i + 1) * (max_column_idx - j + 1);
    26                     if(tmp_area > max_area)
    27                         max_area = tmp_area;
    28                     
    29                     //increase column
    30                     if ( matrix[i][max_column_idx + 1] == '1'){
    31                         max_column_idx ++;
    32                     }else{
    33                         break;
    34                     }
    35                 }
    36                 
    37             }
    38         }
    39         return max_area;
    40     }
    41 };
  • 相关阅读:
    [BZOJ] IOI2015 Boxes纪念品盒
    [BZOJ] 聚会
    [BZOJ] 地精部落
    [BZOJ] 最长距离
    正则
    cookie实例 记住用户名密码
    cookie封装
    碎片整合 例子
    闭包 tab切换 实例
    闭包
  • 原文地址:https://www.cnblogs.com/guyufei/p/3388004.html
Copyright © 2011-2022 走看看