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

news/2024/9/28 7:37:15 标签: java, 开发语言, 数据结构, leetcode, 算法, 排序算法

R9-栈篇

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

 

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

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

peek()取出队列头部元素

java">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.niftyadmin.cn/n/5680657.html

相关文章

【高分系列卫星简介——高分辨率多模综合成像卫星】

高分辨率多模综合成像卫星 高分辨率多模综合成像卫星&#xff08;以下简称“高分多模卫星”&#xff09;是中国航天科技集团所属中国空间技术研究院抓总负责研制的具备亚米级分辨率的民用光学遥感卫星。以下是对高分多模卫星的详细介绍&#xff1a; 一、基本信息 发射时间&…

Kafka学习笔记(一)Linux环境基于Zookeeper搭建Kafka集群、Kafka的架构

文章目录 1 Kafka简介1.1 什么是Kafka1.2 Kafka的应用场景1.3 Kafka的优势 2 搭建Kafka集群2.1 搭建Zookeeper集群2.1.1 上传并解压安装包2.1.2 修改配置文件2.2.3 创建dataDir和myid文件2.2.4 分发到另外两个节点2.2.5 修改node-02节点、node-03节点的配置文件和myid文件2.2.6…

无人机之视觉导航算法篇

一、图像采集与预处理 图像采集&#xff1a;无人机通过其搭载的摄像头或其他视觉传感器实时采集周围环境的图像信息。 图像预处理&#xff1a;对采集到的图像进行预处理&#xff0c;包括滤波、降噪、增强等操作&#xff0c;以提高图像的质量和清晰度&#xff0c;为后续的特征…

深度解析与解决方案:U盘有盘符但无法打开的困境

引言&#xff1a;U盘困境初现 在日常工作与生活中&#xff0c;U盘作为便携式存储设备&#xff0c;扮演着数据传输与备份的重要角色。然而&#xff0c;不少用户会遇到这样一个棘手问题&#xff1a;U盘在插入电脑后能够正常显示盘符&#xff0c;但尝试打开时却遭遇拒绝访问或提示…

R开头的后缀:RE

RE表示方位上的向后&#xff0c;一种时空上的折返&#xff0c;和表示否定意味的不。 68.re- 空间顺序 ①表示"向后&#xff0c;相反&#xff0c;不" reflect 回想;反射(reflect弯曲→反弯曲→反射) retreat 后退,撤退(retreat拉→拉回来→撤退) retract 缩回;收回…

hive/impala/mysql几种数据库的sql常用写法和函数说明

做大数据开发的时候&#xff0c;会在几种库中来回跳&#xff0c;同一个需求&#xff0c;不同库函数和写法会有出入&#xff0c;在此做汇总沉淀。 1. hive 1. 日期差 DATEDIFF(CURRENT_DATE(),wdjv.creation_date) < 30 30天内的数据 2.impala 3. spark 4. mysql 1.时间差…

2516. 每种字符至少取 K 个(24.9.27)

题目 给定一个由字符 a、b、c组成的字符串 s 和一个非负整数 k。每分钟&#xff0c;可以选择取走 s 最左侧或最右侧的那个字符。必须取走每种字符至少 k 个&#xff0c;返回需要的最少分钟数&#xff1b;如果无法取到&#xff0c;则返回 -1。 示例 1&#xff1a; 输入&#…

流程、程序和政策之间的差异

流程、程序和政策是公司遵循的指导方针&#xff0c;以确保公司以有效和安全的方式运营。 每个企业都需要它们&#xff0c;但有时可能会让人搞不清一个从哪里开始&#xff0c;另一个从哪里结束。 企业经常混淆它们的用法&#xff0c;或者在真正含义上指错一个。 从高层次来看…