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;
    }
}
相关推荐
会编程的土豆2 分钟前
消息队列(MQ)入门笔记
java·笔记·spring
专注VB编程开发20年8 分钟前
python运行提速方案全解
java·linux·服务器
涤生大数据12 分钟前
大数据面试高频题:row_number() 数据倾斜到底怎么解决?
java·大数据·面试
weixin_4467291612 分钟前
注解和反射
java·开发语言
alphaTao14 分钟前
LeetCode 每日一题 2026/5/18-2026/5/24
python·leetcode
摇滚侠17 分钟前
HashMap 源码解析 底层原理 面试如何回答
java·面试·职场和发展
凯瑟琳.奥古斯特20 分钟前
常见加密算法及应用
java·开发语言·网络·网络协议·职场和发展
devilnumber21 分钟前
java的lambda妙用举例
java·lambda
invicinble26 分钟前
springboot提供的机制大全
java·spring boot·后端
Han_han91926 分钟前
题⽬ 4:订单商品统计:
java