84. Largest Rectangle in Histogram
Hard
Given an array of integers heights
representing the histogram's bar height where the width of each bar is 1
, return the area of the largest rectangle in the histogram.
Example 1:
Input: heights = [2,1,5,6,2,3]
Output: 10
Explanation: The above is a histogram where width of each bar is 1.
The largest rectangle is shown in the red area, which has an area = 10 units.
Example 2:
Input: heights = [2,4]
Output: 4
Constraints:
1 <= heights.length <= 105
0 <= heights[i] <= 104
class Solution:
def largestRectangleArea(self, heights: List[int]) -> int:
heights.append(0) # This 0 helps in cases like [1,2,3,4,5]
stack = [-1]
result = 0
for index in range(len(heights)):
# If Current Height Less Than Top Height of Stack
while heights[index] < heights[stack[-1]]:
h = heights[stack.pop()]
# print('Height', h)
w = index -1 - stack[-1]
result = max(result, h*w)
stack.append(index)
return resultpy
Last updated