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;
    }
}
相关推荐
是小蟹呀^13 小时前
Spring Security + JWT 面试题整理
java·jwt·springsecurity
spencer_tseng15 小时前
Redis + Nacos.bat
java·windows·dos
troyzhxu16 小时前
列表查询的 GraphQL —— 一行代码终结你的 if-else 地狱!
java·springboot·graphql
孫治AllenSun17 小时前
【DataX】生产环境搭建DataX集群案例
java·开发语言·jvm
好好沉淀18 小时前
@NotBlank(message = “{xxx}“) 注解中花括号的含义
java
fīɡЙtīиɡ ℡18 小时前
内存泄漏产生的原因
java·spring·servlet
hkj880818 小时前
Ubuntu 切换java版本
java·linux·ubuntu
码智社19 小时前
Java实现RSA密钥生成、加密解密、加签验签
java
wear工程师19 小时前
ThreadLocal 在线程池里为什么会串数据:别只会答内存泄漏
java·后端