day60 接雨水 柱状图中的最大矩形

题目1:42 接雨水

题目链接:42 接雨水

题意

n个宽度为1高度不一致的柱子排列,可以接多少雨水

找寻当前柱子的左面第一个比该柱子高的(栈顶的下一个元素),右面第一个比该柱子高的(当前遍历的元素),作差    得到宽度(下标作差)和高度(元素作差)

代码

class Solution {
public:int trap(vector<int>& height) {int sum = 0;stack<int> st;st.push(0);for(int i = 1; i < height.size(); i++){if(height[i] <= height[st.top()]){st.push(i);}else {while(!st.empty() && height[i] > height[st.top()]){int mid = st.top();st.pop();if(!st.empty()){int h = min(height[i], height[st.top()]) - height[mid];int w = i - st.top() - 1;sum += h * w;}}st.push(i);}}return sum;}
};

题目2:84 柱状图中的最大矩形

题目链接:84 柱状图中的最大矩形

题意

求n个不同高度宽度为1的柱子勾勒出的最大面积

找到左面比当前柱子矮的,右面比当前柱子矮的作差得到宽(下标作差),当前柱子高度为高  

需要在数组的头部和尾部加上0,这样所有的柱子都能求一次对应的勾勒出的面积

伪代码

代码

class Solution {
public:int largestRectangleArea(vector<int>& heights) {int s = 0;stack<int> st;heights.insert(heights.begin(), 0);heights.push_back(0);st.push(0);for(int i = 1; i < heights.size(); i++){if(!st.empty() && heights[i] >= heights[st.top()]){st.push(i);}else {while(!st.empty() && heights[i] < heights[st.top()]){int mid = st.top();st.pop();if(!st.empty()){int h = heights[mid];int w = i - st.top() - 1;s = max(h*w, s);}}st.push(i);}}return s;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA_cudaFree_释放Stream_cudaError_t 错误类型码解释

官方网站 &#xff1a; CUDA Runtime API :: CUDA Toolkit Documentation cudaFree() 说明 cudaFree() 是 CUDA 中用于释放由 cudaMalloc() 或 cudaMallocManaged() 分配的设备内存的函数。它的参数是一个指向设备内存的指针&#xff0c;用于指示要释放的内存块的起始地址。…

在React项目中试用Tailwind

TailwindCSS TailwindCSS 是一个套 CSS 的工具类&#xff0c;把常用的功能都进行了定义&#xff0c;下面是一个官网的例子&#xff0c;可以看到Tailwind对一元页面素写了很多类&#xff0c;日常开发中只要定义一两个类就可以搞定类似的功能了。这里写了这么多 p-6 max-w-sm mx…

java导出数据到excel表中

java导出数据到excel表中 环境说明项目结构1.controller层2.service层3.实现层4.工具类&#xff1a;ExcelUtil.java5.ProductModel.java类 使用的Maven依赖postman请求展示&#xff0c;返回内容需要前端接收浏览器接收说明&#xff08;如果下载下来的为zip类型&#xff0c;记得…

win docker clickhouse 挂载本地目录到容器后无法写入数据问题解决

win docker 部署clickhouse 挂载本地目录到容器后无法写入数据问题具体错误提示代码尝试在docker compose 文件中添加文件操作的许可进一步在docker compose 中配置 ulimits参数如下修改映射的本地目录到d盘最后使用docker的数据卷来映射到容器内部目录&#xff0c;解决了不能…

MySQL查询优化(学习)

1.在MySQL中&#xff0c;如何定位慢查询? MySQL自带慢日志 2.一个SQL语句执行很慢, 如何分析&#xff1f; 可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息 3.字段分析 idselect_typetablepartitionstype这条sql的连接的类型&#xff0c;性能有好到…

【报错】ModuleNotFoundError: No module named ‘mmcv‘

【报错】&#x1f494;&#x1f494;&#x1f494; ModuleNotFoundError: No module named mmcv 【解决方法】&#x1f49c;&#x1f49c;&#x1f49c; pip3 install mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple 【测试】&#x1f49a;&#x1f49a;&#x1f49a; p…

C语言读取数据检索存档《C语言程序设计》·第6章·用数组处理批量数据

C数组使用 添加链接描述 C语言读取数据检索存档 1 添加链接描述 2 添加链接描述 3 添加链接描述 4 添加链接描述 5 添加链接描述 6 添加链接描述 7 matlab转C 添加链接描述

【从浅学到熟知Linux】基础IO第三弹=>文件系统介绍、软链接与硬链接(含磁盘结构、文件系统存储原理、软硬链接的创建、原理及应用详解)

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 理解文件系统物理角度认识磁盘逻辑角度认识磁盘磁盘寻址磁盘中的寄存器 磁盘存储管理 软链接与硬链接软链接…

NVIDIA安装程序失败-Nsight Visual Studio Edition失败解决办法

博主是要升级cuda版本&#xff0c;那么在安装新版本之前需要卸载以前的版本。 博主一溜卸载下去&#xff0c;最后有这么个东西卸载不掉&#xff0c;Nsight Visual Studio Edition 不管是电脑系统卸载还是360卸载&#xff0c;都卸载不掉。 此时安装新的cuda也遇到了这个问题 由…

PF滤波?

粒子滤波 本文是对于原文的学习与部分的转载 https://blog.csdn.net/weixin_44044161/article/details/125445579 粒子滤波是在目标跟踪中常用的一种方法 非线性条件下&#xff0c;贝叶斯滤波面临一个重要的问题是状态分布的表达与积分式的求解 由前面章节中的分析可以得知…

拓展网络技能:利用lua-http库下载www.linkedin.com信息的方法

引言 在当今的数字时代&#xff0c;网络技能的重要性日益凸显。本文将介绍如何使用Lua语言和lua-http库来下载和提取LinkedIn网站的信息&#xff0c;这是一种扩展网络技能的有效方法。 背景介绍 在当今科技潮流中&#xff0c;Lua语言以其轻量级和高效的特性&#xff0c;不仅…

后端-MySQL-week11 事务

事务 简介 操作 有两种方式&#xff0c;一种是设置为手动提交——不执行“commit”不进行变更&#xff1b;另一种是手动开启一个事务&#xff0c;用开启事务的代码&#xff08;SQL语句&#xff09;来创建一个需要“commit”才能进行变更的事务 1.第一种方式 2.第二种方式 四…

线性代数基础3 行列式

行列式 行列式其实在机器学习中用的并不多&#xff0c;一个矩阵必须是方阵&#xff0c;才能计算它的行列式 行列式是把矩阵变成一个标量 import numpy as np A np.array([[1,3],[2,5]]) display(A) print(矩阵A的行列式是&#xff1a;\n,np.linalg.det(A))array([[1, 3],[2, …

Postman之全局变量与环境变量配置

实际开发中可能需要不停切换环境&#xff0c;接口中来回输入环境地址比较麻烦&#xff0c;故而通过定义变量来节约频繁更换测试地址所耗费的时间。Postman 允许定义自己的全局变量&#xff08;Globals&#xff09;与环境变量&#xff08;Environment&#xff09;&#xff0c;最…

游程编码(Run-Length Encoding, RLE)的python实现

游程编码(Run-Length Encoding, RLE)的python实现 基本原理及步骤 游程编码(Run-Length Encoding, RLE)&#xff0c;是一种简单的无损数据压缩方法&#xff0c;通过计数连续出现的字符来压缩数据。 主要思想是遍历输入源数据&#xff0c;计算连续相同字符的数量&#xff0c;…

Vue 指令、计算属性、侦听器

目录 指令 指令修饰符 按键修饰符 ​编辑 v-model修饰符 事件修饰符 v-bind对于样式操作的增强 操作class 对象 数组 操作style v-model应用于其他表单元素 computed计算属性 概念 基础语法 ​编辑 计算属性vs方法 computed计算属性 作用 语法 缓存特性 m…

对接浦发银行支付(五)-- 主动查询支付结果

一、背景 上一篇我们介绍了支付回调接口的对接情况&#xff0c;当回调出现网络等异常情况&#xff0c;导致用户的支付订单未及时处理或处理失败的时候&#xff0c;商户则需要自己主动向浦发银行发起查询支付结果。 主动查询支付结果&#xff0c;发挥补偿重试的重要作用&#x…

使用PHP开发体育赛事直播平台,有这些缺点和优点

"东莞梦幻网络科技"作为体育直播平台开发领域的领导者&#xff0c;选择使用PHP开发体育赛事直播平台的现成源码&#xff0c;为什么会选择该语言&#xff0c;背后的选择理由可以从该技术的优点和缺点中找到答案。 一、优点1、易学易用与快速开发&#xff1a;PHP语言语…

HTML的学习-通过创建相册WEB学习HTML-第一部分

文章目录 一、设置中文1.1、添加中文插件1.2、配置显示中文语言 二、学习开始2.1、创建项目文件夹2.2、h1标签示例&#xff1a;生成HTML框架示例&#xff1a;添加h1标签 2.3、h2标签示例&#xff1a;在h1标签下添加h2标签 2.4、h1标签到h6标签层次解析2.5、p标签示例&#xff1…

第2章:GO语言的基本语法

第一部分&#xff1a;GO语言基础 第2章&#xff1a;GO语言的基本语法 在安装和配置好GO语言开发环境之后&#xff0c;本章将带你了解GO语言的基本语法。掌握基本语法是学习任何编程语言的第一步&#xff0c;它将帮助你构建结构良好的代码&#xff0c;并理解GO语言的工作原理。…