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

题目:

题解:

java 复制代码
class Solution {
    public int largestRectangleArea(int[] heights) {
        int n = heights.length;
        int[] left = new int[n];
        int[] right = new int[n];
        Arrays.fill(right, n);
        
        Deque<Integer> mono_stack = new ArrayDeque<Integer>();
        for (int i = 0; i < n; ++i) {
            while (!mono_stack.isEmpty() && heights[mono_stack.peek()] >= heights[i]) {
                right[mono_stack.peek()] = i;
                mono_stack.pop();
            }
            left[i] = (mono_stack.isEmpty() ? -1 : mono_stack.peek());
            mono_stack.push(i);
        }
        
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            ans = Math.max(ans, (right[i] - left[i] - 1) * heights[i]);
        }
        return ans;
    }
}
相关推荐
源力祁老师7 分钟前
Odoo ORM 将 Python 查询意图编译为 SQL 的逐函数讲解(Odoo 19)
java·服务器·数据库
那我掉的头发算什么8 分钟前
【图书管理系统】基于Spring全家桶的图书管理系统(上)
java·服务器·数据库·spring boot·后端·spring·mybatis
廋到被风吹走8 分钟前
SOLID原则深度解析:面向对象设计的五大基石
java·log4j
cjl_85200812 分钟前
MS SQL Server 实战 排查多列之间的值是否重复
java
海兰13 分钟前
ES 9.3.0 日志模式分析
java·大数据·elasticsearch
程序员敲代码吗15 分钟前
微服务熔断降级配置详解与实践:使用Sentinel和Nacos
java·微服务·sentinel
予枫的编程笔记18 分钟前
【YF技术周报 Vol.01】OpenAI 国会指控 DeepSeek,字节发布 Seedance 2.0,Java 26 预览版来了
java·人工智能·openai·后端开发·ai技术·spring ai·deepseek
We་ct20 分钟前
LeetCode 61. 旋转链表:题解+思路拆解
前端·算法·leetcode·链表·typescript
java1234_小锋25 分钟前
Java高频面试题:Zookeeper节点宕机如何处理?
java·zookeeper·java-zookeeper
欧恩意9 小时前
【Tools】Java反汇编工具推荐
java·汇编