Python | Leetcode Python题解之第84题柱状图中最大的矩形

题目:

题解:

class Solution:
    def largestRectangleArea(self, heights: List[int]) -> int:
        n = len(heights)
        left, right = [0] * n, [n] * n

        mono_stack = list()
        for i in range(n):
            while mono_stack and heights[mono_stack[-1]] >= heights[i]:
                right[mono_stack[-1]] = i
                mono_stack.pop()
            left[i] = mono_stack[-1] if mono_stack else -1
            mono_stack.append(i)
        
        ans = max((right[i] - left[i] - 1) * heights[i] for i in range(n)) if n > 0 else 0
        return ans

相关推荐

  1. LeetCode 84. 矩形

    2024-05-13 10:50:05       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 10:50:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 10:50:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 10:50:05       4 阅读
  4. Python语言-面向对象

    2024-05-13 10:50:05       7 阅读

热门阅读

  1. 旅行商要点和难点实际应用和代码案例代码解析

    2024-05-13 10:50:05       19 阅读
  2. Docker 快速搭建 Kafka 集群

    2024-05-13 10:50:05       19 阅读
  3. Python模块介绍

    2024-05-13 10:50:05       16 阅读
  4. REACT 条件渲染

    2024-05-13 10:50:05       24 阅读
  5. 深入探索Python协程:从基础到实践的学习笔记-01

    2024-05-13 10:50:05       17 阅读
  6. pytest并发执行用例方案

    2024-05-13 10:50:05       21 阅读