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 分钟前
Spring Framework源码解析——ApplicationContextInitializer
java·spring·源码
布谷歌6 分钟前
在java中实现c#的int.TryParse方法
java·开发语言·python·c#
while(1){yan}17 分钟前
网络基础知识
java·网络·青少年编程·面试·电脑常识
Ulana21 分钟前
计算机基础10大高频考题解析
java·人工智能·算法
黄俊懿28 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
wheelmouse778833 分钟前
一个优雅、通用、零侵入的 CSV 导出工具类(Java 实战)
java·开发语言
圣保罗的大教堂1 小时前
leetcode 3433. 统计用户被提及情况 中等
leetcode
cike_y1 小时前
JavaWeb-Request应用与Cookie&[特殊字符]️Session
java·开发语言·安全·java安全
hashiqimiya1 小时前
两个步骤,打包war,tomcat使用war包
java·服务器·前端
大筒木老辈子1 小时前
C++笔记---并发支持库(atomic)
java·c++·笔记