leetcode刷题记录(八十四)——739. 每日温度

embedded/2025/1/24 5:16:07/

(一)问题描述

739. 每日温度 - 力扣(LeetCode)739. 每日温度 - 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1,0] 提示: * 1 <= temperatures.length <= 105 * 30 <= temperatures[i] <= 100https://leetcode.cn/problems/daily-temperatures/description/?envType=study-plan-v2&envId=top-100-likedhttps://leetcode.cn/problems/daily-temperatures/description/?envType=study-plan-v2&envId=top-100-liked给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例 1:

输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

示例 2:

输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]

示例 3:

输入: temperatures = [30,60,90]
输出: [1,1,0]

提示:

  • 1 <= temperatures.length <= 105
  • 30 <= temperatures[i] <= 100

(二)解决思路

        使用栈来解决,但是栈里存放的不是元素的值本身,而是下标,方便定位元素进而算出相差的天数。

  • 逐个遍历temperatures中的元素
  • 如果栈为空,先将元素入栈
  • 如果不为空,比较它和栈顶元素的大小,如果小于栈顶元素则入栈,大于栈顶元素则将栈顶元素出栈,此时遍历到的元素就是距离栈顶元素最近的高温天气,可知它距离栈顶元素天数为当前索引-栈顶元素。
java">class Solution {public int[] dailyTemperatures(int[] temperatures) {Stack<Integer> st = new Stack<Integer>();int[] ans = new int[temperatures.length];for(int i=0;i<temperatures.length;i++){while(!st.isEmpty()&&temperatures[i]>temperatures[st.peek()]){int prev=st.pop();ans[prev]=i-prev;}st.push(i);}return ans;}
}

http://www.ppmy.cn/embedded/156477.html

相关文章

python学opencv|读取图像(四十一 )使用cv2.add()函数实现各个像素点BGR叠加

【1】引言 前序已经学习了直接在画布上使用掩模&#xff0c;会获得彩色图像的多种叠加效果&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;四十&#xff09;掩模&#xff1a;三通道图像的局部覆盖-CSDN博客 这时候如果更进一步&#xff0c;直接…

汇编实验·系统调用

一、实验目的: 1.掌握基于特定操作系统中调用API或者SYSTEMCALL的基本方法。 2.进一步理解高级语言中函数调用的相关规定和约定(stdcall,cdec,fastcall等) 3.IA-32架构下API参数在汇编中的实现方式和约定。 二、实验内容 1.在课程设定的VS2022社区版的汇编开发环境下,完…

web3py+flask+ganache的智能合约教育平台

最近在学习web3的接口文档&#xff0c;使用web3pyflaskganache写了一个简易的智能合约教育平台&#xff0c;语言用的是python&#xff0c;ganche直接使用的本地区块链网络&#xff0c;用web3py进行交互。 代码逻辑不难&#xff0c;可以私信或者到我的闲鱼号夏沫mds获取我的代码…

两台局域网电脑通过飞秋传输大文件失败的解决方案

问题描述&#xff1a; 局域网两台电脑之间传输大文件&#xff08;超过20G&#xff09;&#xff0c;不想太复杂&#xff0c;就各装个飞秋。但是通过直接发送文件发现总是失败&#xff0c;一会就中断了。 解决方法&#xff1a; 主界面上有一个文件共享的按钮&#xff0c;通过文…

npm install安装缓慢或卡住不动

起因 今天执行npm install eslint-plugin-cypresslatest --save-dev命令时进度条一直卡着不动&#xff0c;于是想着安装yarn来操作。 方案1 全局安装yarn&#xff08;Mac在npm前加sudo&#xff09;&#xff1a; npm install -g yarn yarn安装好之后安装依赖用&#xff1a; y…

WPF-系统资源

引用资源方法 单个资源 <Window.Resources><ResourceDictionarySource"Res.xaml"></ResourceDictionary> </Window.Resources> <Grid Width"{StaticResource value}" />多个资源 <Window.Resources><ResourceDi…

Net Core微服务入门全纪录(三)——Consul-服务注册与发现(下)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

在 VS Code 中使用 TypeScript 进行开发和打包的几种方法

在 Visual Studio Code (VSCode) 中高效使用 TypeScript 进行开发和打包&#xff0c;需要结合合理的配置、工具链和开发流程。以下是详细步骤和最佳实践&#xff1a; 1. 环境准备 1.1 安装必要工具 Node.js 和 npm: TypeScript 需要 Node.js 环境。建议安装 LTS 版本。 # 验证…