Faaez Razeen

Largest Rectangle in Histogram

  • 3 min read
  • Stacks
  • LC-Hard

3 years ago

m

Solution

TimeSpaceExplanation
O(n)O(n)
def largestRectangleArea(self, heights: List[int]) -> int: max_area = 0 stack = [] # (index, height) for index, height in enumerate(heights): start = index while stack and stack[-1][1] > height: i, h = stack.pop() start = i max_area = max(max_area, h * (index - i)) stack.append((start, height)) for i, h in stack: max_area = max(max_area, h * (len(heights) - i)) return max_area