代码:
暴力解法(超时
- class Solution {
- public int largestRectangleArea(int[] heights) {
- int area = heights[0];
- int n = heights.length;
- for(int i=0;i
- int min = heights[i];
- for(int j=i;j
- min = Math.min(min,heights[j]);
- area = Math.max(area,heights[i]);
- area = Math.max(area,min*(j-i+1));
- }
- }
- return area;
- }
- }
题解里的 用栈存两边边界的数字
- class Solution {
- public int largestRectangleArea(int[] heights) {
- int n = heights.length;
- int[] left = new int[n];
- int[] right = new int[n];
- Deque
mono_stack = new ArrayDeque(); - for(int i=0;i
- while(!mono_stack.isEmpty()&&heights[mono_stack.peek()]>=heights[i]){
- mono_stack.pop();
- }
- left[i] = (mono_stack.isEmpty()?-1:mono_stack.peek());
- mono_stack.push(i);
- }
- mono_stack.clear();
- for(int i=n-1;i>=0;i--){
- while(!mono_stack.isEmpty()&&heights[mono_stack.peek()]>=heights[i]){
- mono_stack.pop();
- }
- right[i] = (mono_stack.isEmpty()?n:mono_stack.peek());
- mono_stack.push(i);
- }
- int ans = 0;
- for(int i=0;i
- ans = Math.max(ans,(right[i]-left[i]-1)*heights[i]);
- }
- return ans;
- }
- }
-
相关阅读:
jQuery的使用,下载以及一些小案例
68-Java的内部类
小冰携手传祺,汽车座舱“虚拟人”渐成标配
企业门户的必备选择,WorkPlus的定制化解决方案
vscode + latex
R语言dplyr包filter函数过滤dataframe数据中指定数据列的内容不是(不等于指定向量中的其中一个)指定列表中的数据行
第九章:Code-Coverage-Guided Fuzzing
cpp primer plus笔记012-STL模板库
第二章:String类
7.Scala类
-
原文地址:https://blog.csdn.net/stacey777/article/details/134526382
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU