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;
    }
}
相关推荐
L-影2 分钟前
单体项目结构
java·开发语言
wuqingshun31415923 分钟前
MySQL 如何解决深度分页问题?
java·mysql·面试
buhuizhiyuci30 分钟前
【算法篇】位运算 —— 基础篇
java·数据库·算法
laboratory agent开发1 小时前
企业AI Agent落地前,先回答四个工程问题
java·前端·人工智能
微三云 - 廖会灵 (私域系统开发)1 小时前
电商系统国际化架构设计:多语言、多币种、多时区、多税制的全链路实现
java·前端·数据库
XS0301061 小时前
Spring AI 第二课-流式输出 & 运行时动态参数配置
java·人工智能·spring
额恩661 小时前
阶段五:HttpOnly Cookie 登录持久化
java·spring
唐青枫1 小时前
Java Netty 实战指南:从 NIO 线程模型到 TCP 编解码和心跳机制
java
想吃火锅10051 小时前
【leetcode】5.最长回文子串js
算法·leetcode·职场和发展
CoderYanger2 小时前
A.每日一题:1967题+1331题
java·程序人生·算法·leetcode·面试·职场和发展·学习方法