由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Largest Rectangle in Histogram不同算法的复杂度
相关主题
Largest Rectangle in Histogramhistogram问题
这个histgram的最大面积问题问个largest rectangle in histogram的问题
有用java过Maximal Rectangle的judge large的吗?面试遇到像largest rectangle in histogram这样的高难题要怎么办?
Maximal Rectangle TLE是指代码正确,但不是最优吗?问个题
challenge: 找bug贡献Google电面面经(不小心误删除了,再发一遍并update)
leetcode: largest rectangle in histogram求帮助Question about Leetcode: Maximum rectangle
google的一道题求解O(NlogN) largest rectangle in histogram
LC装水容器题一定要O(nlogn)做法吗?leetcode一道题
相关话题的讨论汇总
话题: maxarea话题: int话题: height话题: area话题: tmp
进入JobHunting版参与讨论
1 (共1页)
a***e
发帖数: 413
1
看着很容易,一写bruteforce的就TLE,后来看了idea是用stack,如下。
TLE的是O(N^2),用stack是因为每个元素只入栈出栈一次push 和pop都是O(1),所以
是O(N)是吧?一犯困就很糊涂。轻拍
int largestRectangleArea(vector &height) {
int maxArea=0;
int area=0;
int n = height.size();
if (n==1)
return height[0];
int j;
for (int i=0; i {
j=i+1;
while(j {
if (height[j]>=height[i])
{
area = height[i]*(j-i+1);
maxArea = max(area,maxArea);
}
else
{
area = height[i];
maxArea = max(area,maxArea);
break;
}
j++;
}

}
return maxArea;
}
不超时的
int largestRectangleArea(vector &height) {

stack st;
height.push_back(0);
int maxArea=0;
int area=0;
int n = height.size();
for (int i=0; i {
if (st.empty()||height[i]>height[st.top()])
{
st.push(i++);

}
else
{
int tmp = st.top();
st.pop();

if (st.empty())
area = height[tmp]*i;
else
area = height[tmp]*(i-st.top()-1);

maxArea = max(area,maxArea);
}

}
return maxArea;
}
p********n
发帖数: 165
2
用stack 是O(n), yes
1 (共1页)
进入JobHunting版参与讨论
相关主题
leetcode一道题challenge: 找bug
再问Maximal Rectangle的N^2解法leetcode: largest rectangle in histogram求帮助
问一道G家面试题google的一道题求解
求“bar组成的histogram求最大内切矩形”的link...LC装水容器题一定要O(nlogn)做法吗?
Largest Rectangle in Histogramhistogram问题
这个histgram的最大面积问题问个largest rectangle in histogram的问题
有用java过Maximal Rectangle的judge large的吗?面试遇到像largest rectangle in histogram这样的高难题要怎么办?
Maximal Rectangle TLE是指代码正确,但不是最优吗?问个题
相关话题的讨论汇总
话题: maxarea话题: int话题: height话题: area话题: tmp