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;
    }
}
相关推荐
Flittly14 小时前
【SpringAIAlibaba新手村系列】(17)百炼 RAG 知识库应用
java·人工智能·spring boot·spring·ai
穿条秋裤到处跑14 小时前
每日一道leetcode(2026.04.11):三个相等元素之间的最小距离 II
算法·leetcode
努力d小白14 小时前
java 数据类型
java
色空大师14 小时前
【微服务项目-短信平台】
java·redis·微服务·rabbitmq·springcloud·短信
我命由我1234514 小时前
Android Jetpack Compose - SearchBar(搜索栏)、Tab(标签页)、时间选择器、TooltipBox(工具提示)
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
276695829214 小时前
token1005 算法分析
java·前端·javascript·token·token1005·携程酒店·token算法分析
海寻山14 小时前
Java内部类:4种类型+实战场景+面试避坑
java·开发语言·面试
Lsk_Smion15 小时前
Hot100(开刷) 之 长度最小的数组--删除倒数第N个链表--层序遍历
java·数据结构·算法·kotlin
2601_9507039415 小时前
PyCharm性能优化终极指南
java
蓝色的杯子15 小时前
Python面试30分钟突击掌握-LeetCode3-Linked list
python·leetcode·面试