LeetCode || Maximal Rectangle
来源:互联网 发布:三菱数控系统编程 编辑:程序博客网 时间:2024/05/16 09:49
class Solution {public: int maximalRectangle(vector<vector<char>>& matrix) { int row = matrix.size(); if(row == 0) return 0; int col = matrix[0].size(); int i = 0, j = 0; vector<vector<int>> CountOnes; CountOnes.resize(row); for(int i = 0;i<row;i++) CountOnes[i].resize(col); //初始化,计算包括matrix[i][j]的连续的1的数量和 for(i = 0;i<row;i++) for(j = 0;j<col;j++) CountOnes[i][j] = (matrix[i][j] == '0')?0:((j == 0)?1:(CountOnes[i][j-1]+1)); //update matrix int maxOnes = 0; //统计1的最大矩阵数量 for(j = 0;j<col;j++) { vector<int> tmp; tmp.resize(row); for(i = 0;i<row;i++) { if(CountOnes[i][j] == 0) continue; int k = i-1; int lines = 1; while(k>=0) { if(CountOnes[k][j]>=CountOnes[i][j]) lines++; else break; k--; } k = i + 1; while(k <row) { if(CountOnes[k][j]>=CountOnes[i][j]) lines++; else break; k++; } tmp[i] = lines*CountOnes[i][j]; if(tmp[i] > maxOnes) maxOnes = tmp[i]; } for(i = 0;i<row;i++) CountOnes[i][j] = tmp[i]; } return maxOnes; }};
0 0
- 【LeetCode】Maximal Rectangle && Maximal Square
- Leetcode:Maximal Square & Maximal Rectangle
- LeetCode: Maximal Rectangle
- LeetCode Maximal Rectangle
- LeetCode: Maximal Rectangle
- [LeetCode] Maximal Rectangle
- [leetcode] Maximal Rectangle
- [LeetCode]Maximal Rectangle
- [leetcode]Maximal Rectangle
- LeetCode-Maximal Rectangle
- [leetcode] Maximal Rectangle
- Leetcode Maximal Rectangle
- [LeetCode] Maximal Rectangle
- leetcode Maximal Rectangle
- LeetCode Maximal Rectangle
- LeetCode | Maximal Rectangle
- [LeetCode] Maximal Rectangle
- [Leetcode] Maximal Rectangle (Java)
- Java String的经典问题(new String() ,String )
- 今天这个是mybatis与spring的整合
- FMDB的详细使用方法
- Java工具类
- python基础(输入—字符串—list—tuple—循环)
- LeetCode || Maximal Rectangle
- poj 1637 最大流解混合图欧拉回路
- python 多线程
- oracle学习4
- How to Use OpenCV in Android Studio
- jsrender页面数据的展示
- ios的单元测试
- java 简单的TCP接收数据与发送数据
- android之--adb环境变量配置