739. 每日温度(leetcode)

news/2025/1/15 13:46:27/文章来源:https://www.cnblogs.com/lxl-233/p/18413131

https://leetcode.cn/problems/daily-temperatures/

class Solution {public int[] dailyTemperatures(int[] temperatures) {// 经典单调栈// 核心思想就是及时去除无用数据,保证栈中数据有序// 从左到右,栈中存放此前遍历过的元素下标,每遍历到一个元素,就与栈顶元素进行比较// 由于栈中是单调不严格递增的(从栈出口往里的顺序),栈顶元素是最小的,每次就与栈顶元素比较即可// 若遍历到的元素比栈顶元素大,则遇见了栈顶元素右边第一个比它大的值,记录答案,出栈,继续比较栈顶元素,直到小于栈顶元素为止// 若比栈顶元素小,则未找到答案,则入栈即可// 官方题解是这样解释的:由于单调栈满足从栈底到栈顶元素对应的温度递减,因此每次有元素进栈时,会将温度更低的元素全部移除,并更新出栈元素对应的等待天数,这样可以确保等待天数一定是最小的。// 简而言之,就是维护一个单调栈,维护此前遍历过的状态,通过比较出栈得到答案int[] res=new int[temperatures.length];Deque<Integer> st = new ArrayDeque<>();for(int i=0;i<temperatures.length;i++){int t= temperatures[i];while(!st.isEmpty() && t > temperatures[st.peek()]){// 若当前遍历元素大于栈顶元素,则意味着找到了答案,出栈继续比较int top=st.pop();res[top]=i-top;}// 直到元素小于栈顶或者没有元素,才入栈st.push(i);}return res;}
}

 

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

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

相关文章

计算机桌面有去不掉的窗口边框 ,电脑屏幕有残留刷新去不掉怎么办

先允许任务管理器 ,结束explorer进程树 还可以参考 https://blog.csdn.net/weixin_42614269/article/details/118206476再重新运行explorer任务 桌面恢复正常。

对HTML基础详细拓展

1.什么是HMTL? HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言 标记语言是一套标记标签 (markup tag) HTML 使用标记标签来描述网页 HTML 文档包含了HTML 标签及文本内容 HTML文档也叫做 we…

第八篇:权限管理体系

Linux12位权限管理体系权限管理概述 Linux通过rwx3种权限控制系统与保护系统,组成9位权限 Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系rwx三种权限权限 含义r read 是否可读w write 是否可写x execute 是否可执行(一般是命令、脚本)用户三种关系 Linux下面…

学习日历 -2024/9/13

从今天开始放中秋假期,5天的时间,实在是太棒了 建民说下周四要补测,还好不是周五,周五周六我要出去 今天学习了数据结构二叉树的一些基本知识 数据结构(树)度:每一个节点的字节点数量 树高:树的总层数 根结点:最顶层的节点 左子节点:左下方的节点 右子节点:右下方的节点 根结点…

04华为VRP系统入门

04华为VRP系统入门VRP系统基本介绍通用路由平台VRP(Versatile Routing Platform)是 华为公司数据通信产品的通用操作系统平台 。 是华为公司从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。+ ​​华为系设备基础管理文件和存储系统文件系统文件系…

在arm64 架构上安装dotnet 8.0.8 LTS

树莓派 4B 是arm64的。 在arm64上面运行apt list dotnet是不会出来可用的dotnet的,即使apt update多次也一样。 好在dotnet 本身是支持arm/arm64 架构的,只是安装的时候不能使用apt罢了。 那么久使用scripts来进行安装好了。 wget 下载到本地之后,先 chmod +x, 就我自己的…

从0开始计算机体系结构的学习(一):FGPA预备知识与Vivado环境搭建

引入与预备知识 什么是FPGA? FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种集成电路(IC),其硬件功能可以通过用户在现场编程来定义。与传统的ASIC(专用集成电路)不同,FPGA在制造完成后仍然可以根据需求进行重新配置。因此,它们被广泛应用于需要灵活性…

WordPress加载流程的解读分析

index.php ```php <?php /** 这个文件只用来加载 /wp-blog-header.php** @package WordPindex.php ```php <?php /* * 这个文件只用来加载 /wp-blog-header.php * * @package WordPress / /* * 声明一个全局变量,用来判断是否加载主题 * * @var bool / define(WP_USE_…

C++ 虚函数表解析

一、何为多态 多态(polymorphism)指为不同数据类型的实体提供统一的接口,或使用单一的符号来表示多个不同的类型。比如我们熟悉的函数重载、模板技术,都属于多态。无论是模板还是函数重载,都是静态绑定的。也就是说,究竟该调用哪个重载函数或者说调用哪个模板类的实例化,…

8-回溯算法

参考代码随想录题目分类大纲如下:一、回溯算法理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯法其实就是暴力查找,并不是什么高效的算法 回溯法的效率虽然回溯法很难,很不好理解,但是回溯法并不是…

九月

arc131 C考虑奇数情况,只有一个时先手必胜,设当前异或和为 \(S\),必输的情况是 \(\forall S \oplus a_i \in a\),这些数是一一对应的,但一共有奇数,此时先手必胜。偶数是,若第一回合无法结束游戏则变为后手,同上。 E若一个点所有边颜色相同,包含该点的环便不可能三边颜…