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;
    }
}
相关推荐
tuokuac1 小时前
maven与maven-archetype-plugin版本匹配问题
java·maven
元亓亓亓1 小时前
LeetCode热题100--101. 对称二叉树--简单
算法·leetcode·职场和发展
ankleless1 小时前
Spring Boot 实战:从项目搭建到部署优化
java·spring boot·后端
野生技术架构师2 小时前
2025年中高级后端开发Java岗八股文最新开源
java·开发语言
静若繁花_jingjing2 小时前
JVM常量池
java·开发语言·jvm
David爱编程3 小时前
为什么线程不是越多越好?一文讲透上下文切换成本
java·后端
A尘埃3 小时前
Redis在地理空间数据+实时数据分析中的具体应用场景
java·redis
csxin3 小时前
Spring Boot 中如何设置 serializer 的 TimeZone
java·后端
杨过过儿3 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库
青云交3 小时前
Java 大视界 -- Java 大数据分布式计算在基因测序数据分析与精准医疗中的应用(400)
java·hadoop·spark·分布式计算·基因测序·java 大数据·精准医疗