LeetCode--Maximal Rectangle
来源:互联网 发布:mac word转pdf 超链接 编辑:程序博客网 时间:2024/06/17 20:15
Given a 2D binary matrix filled with 0’s and 1’s, find the largest rectangle containing only 1’s and return its area.
For example, given the following matrix:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Return 6.
思路:这道题单独拿出来绝对是一道难题,但是有了上一题Largest Rectangle in Histogram的基础,再思考这个问题就变的简单了许多,可以考虑遍历矩阵的每一行,把每一行为1的部分当做直方图的高度,求得当前行以上构成的各个直方图的最大矩阵面积即可。
class Solution {public: int maximalRectangle(vector<vector<char>>& matrix) { int res=0; vector<int>height; for(int i=0;i<matrix.size();i++){ height.resize(matrix[i].size()); for(int j=0;j<matrix[i].size();j++){ height[j]=matrix[i][j]=='0'?0:(1+height[j]); } res=max(res,largestRectangleArea(height)); } return res; } int largestRectangleArea(vector<int>&heights){ int w,h,area=0; stack<int>index; heights.push_back(0); for(int i=0;i<heights.size();i++){ while(index.size()&&heights[index.top()]>heights[i]){ h=heights[index.top()]; index.pop(); if(index.size()) w=i-1-index.top(); else w=i; area=max(area,w*h); } index.push(i); } return area; }};
阅读全文
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)
- 第1105期AI100_机器学习日报(2017-09-27)
- Leetcode#17. Letter Combinations of a Phone Number
- zynq开发遇到的相关问题
- UVa11134
- Edge打不开的解决方法
- LeetCode--Maximal Rectangle
- Git使用总结(包含Git Bash和Git GUI的使用)
- Java数据结构和算法(五)——队列
- 第943期机器学习日报(2017-04-18)
- 推荐系统 --- 实时推荐系统
- ios打包ipa的四种实用方法(.app转.ipa)
- 第925期机器学习日报(2017-03-31)
- 百度地图API 移动的marker,移动marker点击事件及动态改变速度
- MySQL常用存储引擎之MyISAM