完结撒花! java算法day60 | 84.柱状图中最大的矩形

news/2024/10/18 14:20:43/

84.柱状图中最大的矩形

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思路: 这道题和接雨水很像,不过有两点差别:

  1. 这道题需要找到一个位置前一个比他小的数和后一个比他小的数,而接雨水是找到前一个和后一个比他大的数。
  2. 需要在原数组前后各补上0,防止忽略一些边缘的情况。
java">class Solution {public int largestRectangleArea(int[] heights) {Deque<Integer> stack=new LinkedList<>();int[] newHeights=new int[heights.length+2];newHeights[0]=0;newHeights[heights.length+1]=0;for(int i=0;i<heights.length;i++){newHeights[i+1]=heights[i];}stack.push(0);int res=0;for(int i=1;i<newHeights.length;i++){if(newHeights[i]>newHeights[stack.peek()]){stack.push(i);}else if (newHeights[i] == newHeights[stack.peek()]) {stack.pop(); // 这个可以加,可以不加,效果一样,思路不同stack.push(i);}else{while(!stack.isEmpty() && newHeights[i]<newHeights[stack.peek()]){int mid=stack.peek();stack.pop();int left=stack.peek();int right=i;int h=newHeights[mid];int w=right-left-1;res=Math.max(res,h*w);}stack.push(i);}}return res;}
}

时间复杂度O(n)
空间复杂度O(n)


http://www.ppmy.cn/news/1428971.html

相关文章

完全平方和的最小次数

完全平方和的最小次数 #include<bits/stdc.h> using namespace std; const int MAXN20; const int INF0x3f3f3f3f; //打印出每一个数的由完全平方数之和组成的最小次数 /*例如当n为10 数字&#xff1a;0 1 2 3 4 5 6 7 8 9 10 结果&#xff1a;0 1 2 3 1 2 3 4 2 1 2 */…

安装WSL2

PS C:\Users\pc> wsl --set-default-version 2 有关与 WSL 2 关键区别的信息&#xff0c;请访问 https://aka.ms/wsl2操作成功完成。PS C:\Users\pc> wsl --update 正在检查更新。 已安装最新版本的适用于 Linux 的 Windows 子系统。PS C:\Users\pc> wsl --shutdownPS…

实名制重要性、PHP身份实名认证示例、身份证ocr识别核验

身份证丢失失&#xff0c;可能会被不法分子利用去贷款。虽然是被人冒名办理&#xff0c;客观上不承担责任&#xff0c;但会造成个人信用信息的困扰。因此&#xff0c;对于个人来讲&#xff0c;要妥善保管自己的身份证&#xff0c;避免不必要的麻烦。对于贷款机构来说&#xff0…

色彩的魔力:渐变色在设计中的无限可能性

夕阳&#xff0c;天空&#xff0c;湖面&#xff0c;夕阳...随着距离和光影的变化&#xff0c;颜色的渐变色&#xff0c;近大远小、近实远虚的透视&#xff0c;为大自然营造了浪漫的氛围。延伸到UI/UX设计领域&#xff0c;这种现实、惊艳、独特的渐变色也深受众多设计师的喜爱。…

PgSQL数据库运维操作

1 登录数据库 psql -U 用户名 -d 数据库 psql -U yuhui -d yanglao 2 复制表 insert into yanglaojigou_20240415 (key, province, city, district, name, address, price_low, price_high, beds, property, type, created_time) select key, province, city, district, n…

安装mmsegmentation默认主分支main

安装时间2024.4.21 mmsegmentation新版本main分支&#xff08;v1.2.2&#xff09; 安装过程 conda create --name openmmlab python3.8 -y conda activate openmmlab// 很关键&#xff0c;可以避免mmcv版本问题 pip install torch1.10.1cu113 torchvision0.11.2cu113 torcha…

websocket定时推送数据

示例代码 1、添加pom.xml依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-websocket</artifactId> </dependency> 2、创建websocket配置类 package com.success.socket; import org.springframework.conte…

电大搜题微信公众号:福建开放大学学子的智慧学习伴侣

在当今数字化时代&#xff0c;教育的方式和手段正在经历着前所未有的革命性变化。福建开放大学&#xff0c;作为广播电视大学系统的重要组成部分&#xff0c;一直致力于为学生提供高质量的远程教育服务。在这个过程中&#xff0c;电大搜题微信公众号的推出成为了福建开放大学学…