mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-02 21:22:43 +00:00
feat(work): implement largestRectangleArea solution and fix formatting
This commit is contained in:
1 parent
9de25fecff
commit
66affbe128
1 file changed
+21
-5
@@ -9,7 +9,7 @@ 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:
|
||||
|
||||
@@ -24,15 +24,31 @@ Example 2:
|
||||
Input: heights = [2,4]
|
||||
Output: 4
|
||||
|
||||
|
||||
|
||||
|
||||
Constraints:
|
||||
|
||||
• 1 <= heights.length <= 10^5
|
||||
• 1 <= heights.length <= 10^5
|
||||
|
||||
• 0 <= heights[i] <= 10^4
|
||||
• 0 <= heights[i] <= 10^4
|
||||
"""
|
||||
|
||||
|
||||
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