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

【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.kler.cn/news/324252.html

相关文章:

  • 2024.9.23-2024.9.29组会报告
  • 【HTTP 和 HTTPS详解】3
  • Chainlit集成LlamaIndex实现知识库高级检索(子问题查询引擎)
  • VR虚拟展厅可以在手机上打开吗?
  • 【2023工业3D异常检测文献】基于混合融合的多模态工业异常检测方法Multi-3D-Memory (M3DM)
  • 图灵完备-奇数个信号
  • C++ | Leetcode C++题解之第441题排列硬币
  • FPGA在汽车电子中应用-ADAS
  • 基于 Debian 的系统(如 Ubuntu)上安装、启动和配置 SSH 服务的指令流
  • Redis篇(应用案例 - 商户查询缓存)
  • 深度学习反向传播-过程举例
  • opencv实战项目二十九:GrabCut分割人像
  • Kubernetes学习路线
  • 极狐GitLab 17.4 重点功能解读【一】
  • 基于php的酒店管理系
  • Arthas redefine(加载外部的.class文件,redefine到JVM里 )
  • C高级(Day22)
  • 前端学习笔记-JS进阶篇-02
  • Note2024092801_python 日历信息获取
  • 【算法题】5. 最长回文子串-力扣(LeetCode)
  • 小波去噪MATLAB实现
  • TLV解码 - 华为OD统一考试(E卷)
  • Linux网络:网络编程套接字
  • 努比亚 Z17 NX563J Root 教程三方REC刷写工具教程
  • 软件测试人员发现更多程序bug
  • 828华为云征文|华为云弹性云服务器FlexusX实例下的Nginx性能测试
  • 分库分表方案中的数据倾斜问题及解决方案详解
  • Android Glide(一):源码分析,内存缓存和磁盘缓存的分析,实现流程以及生命周期
  • Llama 3.2:利用开放、可定制的模型实现边缘人工智能和视觉革命
  • AG-Pose 部署笔记