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       8 阅读

最近更新

  1. .Net Core WebAPI参数的传递方式

    2024-05-13 10:50:05       0 阅读
  2. QT--气泡框的实现

    2024-05-13 10:50:05       1 阅读
  3. LeetCode 968.监控二叉树 (hard)

    2024-05-13 10:50:05       0 阅读
  4. leetcode热题100.完全平方数(动态规划进阶)

    2024-05-13 10:50:05       0 阅读
  5. leetcode328-Odd Even Linked List

    2024-05-13 10:50:05       0 阅读
  6. C 语言设计模式(结构型)

    2024-05-13 10:50:05       0 阅读
  7. v-if 与 v-show(vue3条件渲染)

    2024-05-13 10:50:05       0 阅读
  8. kafka防止消息丢失配置

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

热门阅读

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

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

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

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

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

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

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