标签:13 offer int res top pop heights 力扣 max
39)直方图最大矩形面积
class Solution {
public:
int largestRectangleArea(vector<int>& heights) {
stack<int> s;
int res=0;
heights.push_back(0);
for(int i=0; i<heights.size(); i++){
while(!s.empty() && heights[s.top()]>=heights[i]){
int h = heights[s.top()]; s.pop();
if(s.empty()) res = max(res, h*i);
else{
res = max(res, h*(i-s.top()-1));
}
}
s.push(i);
}
return res;
}
};
40)矩阵中最大的矩形
class Solution {
public:
int maximalRectangle(vector<string>& matrix) {
if(matrix.empty()) return 0;
vector<int> heights(matrix[0].size()+1);
int res = 0;
stack<int> s;
heights.back() = -1;
for(int i=0; i<matrix.size(); i++){
for(int j=0; j<heights.size(); j++){
if(j<heights.size()-1) heights[j] = matrix[i][j]=='1' ? heights[j]+1 : 0;
while(!s.empty() && heights[s.top()]>=heights[j]){
int h = heights[s.top()]; s.pop();
if(s.empty()) res = max(res, h*j);
else{
res = max(res, h*(j-s.top()-1));
}
}
s.push(j);
}
s.pop();
}
return res;
}
};
标签:13,offer,int,res,top,pop,heights,力扣,max 来源: https://blog.csdn.net/weixin_51650301/article/details/122746233
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。