标签:max amp || output .com nbsp etc 最大 NPU
算法描述:
Given n non-negative integers representing the histogram‘s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3]
.
The largest rectangle is shown in the shaded area, which has area = 10
unit.
Example:
Input: [2,1,5,6,2,3] Output: 10
解题思路:用栈辅助。维护一个升序的栈。当新元素小于栈顶元素,弹出该元素,并计算机最大面积。
int largestRectangleArea(vector<int>& heights) { if(heights.size()==0) return 0; stack<int> stk; int maxArea = 0; int i=0; while(i < heights.size()){ if(stk.empty() || heights[i] >= heights[stk.top()]){ stk.push(i); i++; }else{ int index = stk.top(); stk.pop(); maxArea = max(maxArea, heights[index]*(stk.empty()? i: i-stk.top()-1)); } } while(!stk.empty()){ int index = stk.top(); stk.pop(); maxArea = max(maxArea, heights[index]*(stk.empty()?i:i-stk.top()-1)); } return maxArea; }
LeetCode-84-Largest Rectangle in Histogram
标签:max amp || output .com nbsp etc 最大 NPU
原文地址:https://www.cnblogs.com/nobodywang/p/10373984.html