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

【算法刷题day60】Leetcode:84. 柱状图中最大的矩形

文章目录

    • Leetcode 84. 柱状图中最大的矩形
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 84. 柱状图中最大的矩形

题目:84. 柱状图中最大的矩形
解析:代码随想录解析

解题思路

反方向接雨水。见上一篇文章

代码

class Solution {public int largestRectangleArea(int[] heights) {int[] newHeights = new int[heights.length+2];System.arraycopy(heights, 0, newHeights, 1, heights.length);int res = 0;Stack<Integer> stack = new Stack<>();stack.push(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 (newHeights[i] < newHeights[stack.peek()]) {int mid = stack.peek();stack.pop();int left = stack.peek();int h = newHeights[mid];int w = i - left - 1;res = Math.max(res, w * h);}stack.push(i);}}return res;}
}//双指针
class Solution {public int largestRectangleArea(int[] heights) {int length = heights.length;int []leftHeight = new int[length];int []rightHeight = new int[length];leftHeight[0] = -1;for (int i = 1; i < length; i++) {int t = i-1;while (t >= 0 && heights[t] >= heights[i])t = leftHeight[t];leftHeight[i] = t;}rightHeight[length-1] = length;for (int i = length-2; i >= 0; i--) {int t = i+1;while (t < length && heights[t] >= heights[i])t = rightHeight[t];rightHeight[i] = t;}int res = 0;for (int i = 0; i < length; i++) {int area = (rightHeight[i] - leftHeight[i] - 1) * heights[i];res = Math.max(res, area);}return res;}
}

总结

暂无

相关文章:

【算法刷题day60】Leetcode:84. 柱状图中最大的矩形

文章目录 Leetcode 84. 柱状图中最大的矩形解题思路代码总结 草稿图网站 java的Deque Leetcode 84. 柱状图中最大的矩形 题目&#xff1a;84. 柱状图中最大的矩形 解析&#xff1a;代码随想录解析 解题思路 反方向接雨水。见上一篇文章 代码 class Solution {public int la…...

ThingsBoard物联网网关在智慧城市数据采集中的应用

智慧城市由监控中心、采集网关、前端采集设备、前端感应执行器组成。 为何选用ThingsBoard作为平台 监控中心为物联网平台&#xff0c;该平台包含云计算、大数据、人工智能、物联网、GIS、云安全等主要模块&#xff0c;具备数据采集、数据交换、超大规模计算、数据分析、数据应…...

Java中的打印流PrintStream 和 PrintWriter

PrintStream和PrintWriter在Java中都是用于打印输出的类&#xff0c;但它们之间存在一些明显的区别。以下是关于这两个类的详细解释和比较&#xff1a; PrintStream 基本特性 PrintStream是一个字节打印流&#xff0c;它继承自FilterOutputStream。 主要操作byte流&#xff0…...

【MATLAB源码-第217期】基于matlab的16QAM系统相位偏移估计HOS算法仿真,对比补偿前后的星座图误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 高阶统计量&#xff08;HOS&#xff09;频偏估计算法 高阶统计量&#xff08;Higher Order Statistics, HOS&#xff09;频偏估计算法是一种先进的信号处理技术&#xff0c;广泛应用于现代数字通信系统中&#xff0c;以应对…...

C# CryptoStream流的详解与示例

在当今数字时代&#xff0c;数据安全变得越来越重要。保护敏感信息免受未授权访问是每个开发者的责任。在C#中&#xff0c;使用CryptoStream流可以方便地对数据进行加密和解密。本文将详细介绍C# CryptoStream库的用法、功能以及它如何对数据进行加密和解密。 一、CryptoStrea…...

Kubernetes 之 ReplicaSet

Kubernetes 之 ReplicaSet ReplicaSet 定义 ReplicaSet 是 Kubernetes 中的一种副本控制器&#xff0c;其主要作用是控制其管理的 Pod 的预设副本数量。它会持续监听这些 Pod 的运行状态&#xff0c;在Pod发生故障时执行重启策略&#xff0c;当 Pod 数量减少时会重新启动新的…...

转发和重定向

目录 是什么 转发&#xff08;Forwarding&#xff09; 概念 特点 实现方式 重定向&#xff08;Redirecting&#xff09; 概念 特点 实现方式 转发和重定向区别整理 转发和重定向的适用场景 转发&#xff08;Forwarding&#xff09; 重定向&#xff08;Redirect&am…...

源码部署ELK

目录 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 单节点 集群(3台节点集群为例) 启动 二、部署logstash 部署logstash 添加配置文件 启动 三、部署kiban…...

构造+模拟,CF1148C. Crazy Diamond

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1148C - Codeforces 二、解题报告 1、思路分析 题目提示O(5n)的解法了&#xff0c;事实上我们O(3n)就能解决&#xff0c;关键在于1&#xff0c;n的处理 我们读入数据a[]&#xff0c;代表初始数组…...

CAD二次开发(2)-将直线对象添加到CAD图形文件

1. 准备工作 创建一个类库项目&#xff0c;如下&#xff1a; 2. 分析Line对象 Line类的初始化方法和参数 using Autodesk.AutoCAD.DatabaseServices; Line line new Line();Line 继承Curve 继承Entity 继承DBObject 继承Drawable 继承RXObject 初始化方法有两个&#xf…...

代码随想录二刷 Day05 | 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和,454.四数相加II,383. 赎金信

题目与题解 参考资料&#xff1a;哈希表理论基础 Tips&#xff1a; 一般哈希表都是用来快速判断一个元素是否出现集合里哈希表生成原理&#xff1a;先通过哈希函数将变量映射为hashcode&#xff0c;如果二者hashcode相同&#xff0c;再通过哈希碰撞方法&#xff08;拉链法&…...

2024年四川省三支一扶报名流程图解✅

2024年四川省三支一扶报名流程图解✅ &#x1f534;时间安排 1、报名时间&#xff1a;5月31日—6月4日17:00 2、资格初审时间&#xff1a;5月31日—6月5日17:00 3、准考证打印时间&#xff1a;6月25日—6月29日 4、笔试时间&#xff1a;6月30日 5、笔试成绩&#xff1a;7…...

js Dom基础

获取元素 1、getElementById() 通过id属性获取一个元素节点对象 <div id"div1"></div> <script> var div1 document.getElementById(div1) </script> 2、 getElementsByTagName()可以根据标签名来获取一组元素节点对象 这个方法会给我们返…...

pytest识别测试用例的机制以及和unittest的区别

pytest识别测试用例的机制 文件 以test_开头或以_test结尾的python文件&#xff0c;即test_xxx.py或xxx_test.py类&#xff0c;在第一点识别到的文件中的类&#xff0c;且满足一下任一条件&#xff1a; 1&#xff09;以Test_开头&#xff0c;且没有__init__()初始化函数的类&a…...

民国漫画杂志《时代漫画》第17期.PDF

时代漫画17.PDF: https://url03.ctfile.com/f/1779803-1248612629-85326d?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;...

[AIGC] Spring Boot 2 自定义 Starter 指南

Spring Boot 包含一系列的 “Starter POMs”&#xff0c;它们都是一些方便的依赖描述符&#xff0c;你可以在你的应用中导入。在一些情况下&#xff0c;你可能想创建自己的自定义 starter。以下是创建自己的 Spring Boot Starter 的步骤。 文章目录 1. 创建基本的 Maven 项目2.…...

HCIP综合实验命令

目录 一、配置IP地址 二、配置DHCP 三、配置静态路由&#xff08;内网通&#xff09; 四、配置缺省路由 &#xff08;外网通&#xff09; 五、配置缺省 &#xff08;全网通&#xff09; 六、防环配置 七、配置远程登录 八、修改优先级 九、配置MP-GROUP 十、配置ppp进…...

JS移动端设置mouseover,mouseleave有效么

在移动设备的浏览器环境中&#xff0c;mouseover 和 mouseleave 事件的行为与桌面浏览器有所不同&#xff0c;主要是因为移动设备的交互方式主要是基于触摸的&#xff0c;而不是基于鼠标的。 在移动设备上&#xff0c;当用户触摸屏幕时&#xff0c;通常会触发 touchstart 事件…...

IAR9.30安装和注册相关

下载解压licpatcher64工具&#xff0c;把licpatcher64.exe拷贝到IAR的安装目录中双击运行。 示例IAR9.30.1默认安装如下如下&#xff0c;一共三个分别拷贝运行&#xff0c;不要遗漏。 C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\bin C:\Program Files\IAR Syst…...

HTTP Digest Access Authentication Schema

HTTP Digest Access Authentication Schema 背景介绍ChallengeResponse摘要计算流程总结参考 背景 本文内容大多基于网上其他参考文章及资料整理后所得&#xff0c;并非原创&#xff0c;目的是为了需要时方便查看。 介绍 HTTP Digest Access Authentication Schema&#xff…...

深度强化学习在航天控制中的仿真到实物迁移挑战

1. 深度强化学习在航天控制领域的应用背景卫星近距离操作是航天任务中的一项关键技术挑战&#xff0c;涉及轨道交会、在轨服务、空间目标检测等多种场景。传统基于模型预测控制&#xff08;MPC&#xff09;的方法需要精确的环境动力学模型&#xff0c;而实际太空环境中存在诸多…...

InputTip:提升表单体验的动态输入引导组件设计与实战

1. 项目概述&#xff1a;一个被低估的输入增强工具 在桌面应用开发中&#xff0c;我们常常会花费大量精力去构建复杂的业务逻辑和炫酷的界面&#xff0c;却容易忽略一个直接影响用户体验的细节&#xff1a; 输入引导 。回想一下&#xff0c;你是否遇到过这样的场景&#xff1…...

模型运行记录

1753...

权限割裂、数据延迟、协同断点——Gemini Workspace整合失败的90%源于这4个配置盲区

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;权限割裂、数据延迟、协同断点——Gemini Workspace整合失败的90%源于这4个配置盲区 在企业级部署 Gemini Workspace 时&#xff0c;大量团队遭遇“功能可登录但协作不可用”的隐性故障。根本原因并非 …...

大模型高效化实战:从量化剪枝到推理部署的完整指南

1. 大模型高效化&#xff1a;从“巨无霸”到“精悍战士”的必经之路如果你和我一样&#xff0c;在过去的几年里深度参与过大语言模型的部署和应用&#xff0c;那你一定对“模型太大”这个问题深有体会。动辄几十GB甚至上百GB的模型文件&#xff0c;对显存的贪婪吞噬&#xff0c…...

别再只用BigGantt了!这个免费JIRA甘特图插件Gantt Suite,配置简单速度快

轻量高效的JIRA甘特图解决方案&#xff1a;Gantt Suite全面评测与迁移指南 在项目管理领域&#xff0c;甘特图作为可视化排期的黄金标准已有百年历史。然而当这一经典工具遇上现代敏捷开发平台JIRA时&#xff0c;许多团队却陷入了两难境地——要么忍受BigGantt等老牌插件的臃肿…...

照片去背景的方法有哪些?2026年最全工具推荐与实用指南

前两天有个朋友问我&#xff0c;怎样能快速把证件照的底色换掉&#xff0c;还有电商卖家想给商品图去背景。我才意识到&#xff0c;现在还有很多人不知道照片去背景有这么多方便的办法。与其逐个讲解&#xff0c;我决定写篇文章&#xff0c;把我这些年试过的各种照片去背景的方…...

FPGA边缘视觉方案解析:从芯片选型到多传感器融合实战

1. 项目概述&#xff1a;单芯片FPGA嵌入式视觉与融合分析方案 最近在梳理一些老项目的技术文档时&#xff0c;翻到了Altera&#xff08;现在已是Intel PSG的一部分&#xff09;和Eutecus在2015年左右合作推出的一套方案&#xff0c;当时在EE Times上被称作“Single-Chip FPGA-B…...

掌握高效窗口管理:专业级分辨率调整工具完全指南

掌握高效窗口管理&#xff1a;专业级分辨率调整工具完全指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 在当今多任务处理和多屏工作环境中&#xff0c;你是否经常遇到窗口大小不合适、分辨率限制或游戏画面…...

大模型评测实战指南:从基准测试到技术选型的全流程解析

1. 项目概述&#xff1a;为什么我们需要一个“大模型评测”清单&#xff1f;如果你在过去一年里深度参与过大语言模型&#xff08;LLM&#xff09;的应用开发、技术选型或者仅仅是技术追踪&#xff0c;你大概率会和我有同样的感受&#xff1a;“评测”这件事&#xff0c;变得越…...