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 小时前
Apache BookKeeper Ledger 的底层存储机制解析
java
半旧5182 小时前
重构谷粒商城11:node快速入门
java·前端·重构
嘤国大力士3 小时前
C++11&QT复习 (十六)
java·开发语言·c++
菜鸟起航ing3 小时前
【Java面试系列】Spring Boot中自动配置原理与自定义Starter开发实践详解 - 3-5年Java开发必备知识
java·spring boot·面试·自动配置·自定义starter
李白的粉3 小时前
基于springboot+vue的课程管理系统
java·毕业设计·课程设计·源代码·课程管理系统
DDDiccc3 小时前
SpringCloud微服务(一)Eureka+Nacos
java·spring cloud·微服务
橘猫云计算机设计3 小时前
ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·后端·爬虫·小程序·毕业设计·asp.net
念九_ysl3 小时前
Java中的列表(List):操作与实现详解
java·开发语言·list
一只小透明啊啊啊啊3 小时前
【leetcode 100】贪心Java版本
java·算法·leetcode
archko5 小时前
telophoto源码查看记录
java·服务器·前端