mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 13:12:44 +00:00
docs(docs): add MDX pages for Median of Two Sorted Arrays and Largest Rectangle in Histogram and update site redirects
This commit is contained in:
1 parent
66affbe128
commit
31a1fcfdbd
3 files changed
+98
No files matched your search
+51
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: '84. Largest Rectangle in Histogram'
|
||||
description: 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
|
||||
icon: dot
|
||||
topics:
|
||||
- { name: "Array", slug: "array" }
|
||||
- { name: "Stack", slug: "stack" }
|
||||
- { name: "Monotonic Stack", slug: "monotonic-stack" }
|
||||
- { name: "Range Minimum/Maximum Query", slug: "range-minimum-maximum-query" }
|
||||
issue: "https://github.com/prdlk/leetcode/issues/76"
|
||||
sidebar:
|
||||
label: 'Largest Rectangle in Histogram'
|
||||
badge: 'Hard'
|
||||
---
|
||||
|
||||
### 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 <= 10^5`
|
||||
- `0 <= heights[i] <= 10^4`
|
||||
|
||||
## Solution
|
||||
|
||||
```py
|
||||
class Solution:
|
||||
def largestRectangleArea(self, heights: list[int]) -> int:
|
||||
maxArea = 0
|
||||
stack = []
|
||||
|
||||
for i, h in enumerate(heights):
|
||||
start = i
|
||||
while stack and stack[-1][1] > h:
|
||||
index, height = stack.pop()
|
||||
width = i - index
|
||||
maxArea = max(maxArea, height * width)
|
||||
start = index
|
||||
stack.append((start, h))
|
||||
|
||||
for i, h in stack:
|
||||
maxArea = max(maxArea, h * (len(heights) - i))
|
||||
|
||||
return maxArea
|
||||
```
|
||||
Reference in new issue
Block a user