当前位置: 首页 > news >正文

【hot100-java】【柱状图中最大的矩形】

R9-栈篇

面积最大矩形的高度一定是 heights 中的元素

 

简单解释,就是说,最大高度必然是heights中的一个元素,我们假设是h,然后我们基于h,左右拓展,尽量拓展到h越来越高(符合单调栈),这样能保证left~right之间的最高高度都是h.

Deque<Integer>st=new ArrayDeque<>();
//整形双端队列

peek()取出队列头部元素

class Solution {public int largestRectangleArea(int[] heights) {int n=heights.length;int [] left=new int[n];Deque<Integer>st=new ArrayDeque<>();for (int i=0;i<n;i++){int x=heights[i];while(!st.isEmpty()&&x<=heights[st.peek()]){st.pop();}left[i]=st.isEmpty()?-1:st.peek();st.push(i);}//开始处理右边int [] right=new int[n];st.clear();for (int i=n-1;i>=0;i--){int x=heights[i];while(!st.isEmpty()&&x<=heights[st.peek()]){st.pop();}right[i]=st.isEmpty()?n:st.peek();st.push(i);}    //返回结果处理int ret=0;for (int i=0;i<n;i++){ret=Math.max(ret,heights[i]*(right[i]-left[i]-1));}      return ret;}
}

 


http://www.mrgr.cn/news/37971.html

相关文章:

  • MindSearch 部署到Github Codespace 和 Hugging Face Space
  • 一文带你读懂分库分表,分片,Sharding的许多概念
  • Iterm2配置主题和Oh-My-Zsh
  • 【2米/8米光学卫星】
  • OMRON欧姆龙E5GN温控器手测
  • Rust 语言开发 ESP32C3 并在 Wokwi 电子模拟器上运行(esp-hal 非标准库、LCD1602、I2C)
  • Pandas常用数据总览,样本抽检函数
  • 【1米C-SAR卫星】
  • 《C++开源贡献:提升职业竞争力的新途径》
  • 论文阅读 | HiDDeN网络架构
  • Springboot综合练习
  • MySQL知识点复习 - 常用的日志类型
  • AI绘画相似风格的作品
  • 【python进阶攻略6】装饰器2
  • c++开发之编译curl(windows版本)
  • matlab r2024a、matlab R2024b保姆级安装教程
  • 在Ubuntu中自动挂载SMB/CIFS共享
  • SpringBoot集成AI:接入大模型框架 LangChain4j 详细教程
  • 基于微信小程序的旅游助手的设计与实现(源码+定制+文档讲解)
  • 每日一题学习笔记