力扣HOT100之栈:739. 每日温度


这道题是单调栈的一个经典应用,这里我们使用单调递减的栈(从栈底到栈顶单调递减)来实现,首先我们创建一个与temperatures大小一致的全0数组result,然后我们通过一个for循环,通过下标访问的方式遍历所有元素,当栈不为空且当前遍历到的元素大于栈顶对应的元素时,我们将result[st.top()]赋值为i - st.top(),然后将栈顶元素弹出,注意,这应当是一个持续的过程,因为弹出原来的元素后,新的栈顶对应的温度仍有可能低于当前遍历到的温度,所以我们需要不断地对比和赋值,直到当前温度低于栈顶的温度或栈被清空,则我们才将当前遍历到的下标压入栈中。
当遍历结束后,result也赋值完成,我们直接将result返回即可。

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n = temperatures.size();stack<int> st;vector<int> result(n, 0);for(int i = 0; i < n; i++){//把温度小于temperatures[i]的日期全都找出来,并在对应的位置上标注//该日期与第i天的时间间隔,如果栈清空了,则无需继续统计,直接将其//压入栈中while(!st.empty() && temperatures[st.top()] < temperatures[i]){result[st.top()] = i - st.top();st.pop();}st.push(i);}return result;}
};

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

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

相关文章

vue3 报错Missing semicolon

快速定位问题&#xff1a; 一、在git中对比改动&#xff0c;实在不行重置。 二、找分号或逗号 三、误碰键盘&#xff0c;多了空格or一些字母&#xff0c;删除即可。如下

在pyCharm中创建新的conda环境

在conda中创建pychars环境 打开 CMD 或 PowerShell 或 Anaconda Prompt 输入以下命令&#xff1a; conda create -n pychars python3.10你可以把 3.10 换成你需要的 Python 版本&#xff0c;如 3.9、3.11 等。 创建完成后激活环境&#xff1a; conda activate pychars在 Py…

如何确定某个路由器的路由表?(计算机网络)

以下题为例 题目说要路由表关键是目的网络地址和下一跳地址 那么我们第一步先确定目的网络地址。 一共有四个网络&#xff0c;即有四个目的网络地址&#xff1a;15.0.0.0 20.0.0.0 30.0.0.0 40.0.0.0 下一跳地址就是去往目地网络的下一个ip地址 。 我们这里是要的…

ubuntu 系统 多条命令通过 bash 脚本执行

ubuntu 系统 多条命令通过 bash 脚本执行。 1、新建sh脚本。 vim run.sh 2、示例命令&#xff0c;写入run.sh文件内&#xff0c;具体命令如下: #!/bin/bash# 切换到指定目录 cd /work_space/build/bin# 执行程序 ./demo 3、给sh脚本权限。 chmod x run.sh 4、执行sh脚本…

《拆解问题的技术》笔记

思维导图 拆解问题的技术 拆解职场难题 拆解项目难题 拆解简报企划难题 拆解学习难题 拆解人生难题

langChain构建ChatRobot(1)—基础对话

摘要&#xff1a;本文介绍利用langChain核心组件Models里的Chat Models构建基本的Chatbot&#xff0c;能实现简单的问答。 文章目录 概述Chat Model1. message对象1.1 消息类型介绍&#xff1a;1.2 使用场景&#xff1a; 2. 利用ChatModel构建简单的 Chatbot2.1 实现基本的问答…

行为模式-迭代器模式

定义&#xff1a; Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.&#xff08;它提供一种方法访问一个容器对象中各个元素&#xff0c;而又不需暴露该 对象的内部细节。&#xff09; 迭代器模式通…

图像处理算法的学习笔记

一、常见噪声简介 1. 高斯噪声 最普遍&#xff0c;最难用肉眼精确判断。图像整体看起来"颗粒感"很强&#xff0c;像蒙了一层半透明的"薄纱"或"雪花点"&#xff08;就像老式电视的雪花屏&#xff09;&#xff0c;覆盖整个画面。噪声点是细小的、…

《Java开发工具全解析:从基础到前沿》

一、引言 在当今数字化时代&#xff0c;软件开发犹如一座庞大而复杂的大厦&#xff0c;支撑着我们生活中方方面面的应用。而 Java&#xff0c;作为软件开发领域中极为重要的一门编程语言&#xff0c;宛如大厦的基石&#xff0c;发挥着不可替代的关键作用。 自 1995 年正式诞生…

[11-4]SPI通信外设 江协科技学习笔记(5个知识点)

1 2 3 TDR、TXE、RDR、RXNE 这些术语通常与串行通信接口有关&#xff0c;特别是在使用 UART&#xff08;通用异步收发传输器&#xff09;或 USART&#xff08;通用同步/异步收发传输器&#xff09;时。下面是每个术语的含义和用途&#xff1a; • TDR(Transmit Data Register)&…

NB/T 32004-2018测试是什么,光伏并网逆变器NB/T 32004测试项目

NB/T 32004-2018测试是什么&#xff0c;光伏并网逆变器NB/T 32004测试项目 根据NB/T 32004-2018《光伏并网逆变器技术规范》&#xff0c;光伏并网逆变器的测试项目涵盖电气性能、安全保护、环境适应性、电磁兼容性及并网性能五大类&#xff0c;共42项核心测试内容。以下是关键测…

数据可视化——一图胜千言

第04篇&#xff1a;数据可视化——一图胜千言 写在前面&#xff1a;大家好&#xff0c;我是蓝皮怪&#xff01;前面几篇我们聊了统计学的基本概念、数据类型和描述性统计&#xff0c;这一篇我们要聊聊数据分析中最直观、最有趣的部分——数据可视化。你有没有发现&#xff0c;很…

日常运维问题汇总_41

121.MIGO工单投料时&#xff0c;尽管MMBE显示库存地点1002/1003有库存&#xff0c;但系统还是提示报错&#xff1a;工厂2233未发现存储地点1002的命中数&#xff0c;消息编号MIGO010&#xff0c;如下图所示&#xff1a; 解决方法&#xff1a; T-CODE:OX09,增加工厂2233下的库存…

Monte Carlo衍生品定价(金融工程)

Monte Carlo衍生品定价&#xff08;金融工程&#xff09; 基于Monte Carlo模拟方法的衍生品定价综合MATLAB实现。本项目为金融工程应用提供完整框架&#xff0c;具有专业级代码、真实市场数据集成和详细文档。 &#x1f4cb; 目录 项目概述功能特性项目结构安装说明使用方法…

Kubernetes服务部署——RabbitMQ(集群版)

1、简介 RabbitMQ 是一个广泛使用的开源消息队列系统&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;&#xff0c;并且支持多种消息传递机制。它作为一个中间件&#xff0c;负责解耦不同应用程序或服务之间的通信&#xff0c;通过高效的消息传递和排队机制…

从离散控制到集成管理:Modbus TCP转CANopen网关重构烟丝膨胀生产线

在工业自动化和控制系统中&#xff0c;ModbusTCP和CANopen是两种广泛应用的通信协议。它们各自具有独特的优势&#xff0c;但在实际应用中往往需要将两者结合起来&#xff0c;以满足特定的需求。本文将探讨如何实现小疆智控ModbusTCP转CANopen网关GW-CANZ-TCPC&#xff0c;并阐…

使用离线依赖解决Android Studio编译报错(下载不了jar)——笔记

报错如图 What went wrong: Execution failed for task ‘:app:lintVitalAnalyzeRelease’. Could not resolve all files for configuration ‘:app:detachedConfiguration1’. Could not download groovy-3.0.22.jar (org.codehaus.groovy:groovy:3.0.22) Could not get reso…

终端警告“加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时,该值是图像的有效文件路径“

终端警告“加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时&#xff0c;该值是图像的有效文件路径“ 问题如下 在 CMD 命令窗口选择 设置 ​ 看一下这里的几个终端是否有图像&#xff0c;如果存在没有图像的终端&am…

基于有限状态机的测试(五):关键技术(自适应区分序列、识别序列)

要验证现实状态机模型B和理想状态机模型A的相似性&#xff0c;以及B中各个状态迁移的正确性&#xff0c;核心问题在于如何判断被测对象所处的状态。围绕这一问题发展出来的种种技术&#xff0c;就成为了基于有限状态机的测试方法中的关键部分。 本篇我们继续讨论这些关键技术。…

C++之list的自我实现

list 引言一、节点类&#xff1a;ListNode1.1 类定义与作用1.2 关键特性 二、迭代器类&#xff1a;ListIterator2.1 类定义与模板参数2.2 核心功能函数2.2.1 访问操作符2.2.2 迭代器移动2.2.3 比较操作符 2.3 设计要点 三、链表类&#xff1a;list3.1 核心成员与类型定义3.2 构…