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;
    }
}
相关推荐
正在绘制中3 分钟前
Java重要面试名词整理(八):RabbitMQ
java·面试·java-rabbitmq
悲且狂5 分钟前
文件路径与Resource接口详解
java·学习
c1assy6 分钟前
DP动态规划+贪心题目汇总
数据结构·算法·leetcode·贪心算法·动态规划
gz94569 分钟前
Virtualbox安装ubuntu20虚拟机无法打开终端
java·linux·开发语言
自律的kkk37 分钟前
mysql基础快速入门
java·数据库·mysql·oracle
alien爱吃蛋挞38 分钟前
List详解
java·list
HackKong44 分钟前
高校网络安全_网络安全之道
java·网络·c++·python·学习·web安全·黑客技术
Andy01_1 小时前
Java八股汇总【MySQL】
java·开发语言·mysql
唐 城1 小时前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·spring·log4j
Ning_.1 小时前
力扣第116题:填充每个节点的下一个右侧节点指针 - C语言解法
c语言·算法·leetcode