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

【LeetCode】【算法】739. 每日温度

LeetCode 739. 每日温度

题目描述

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
示例:
输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]

思路

思路:单调栈,栈中存储的是一个数组,包括当日温度和天数

  1. 遍历温度数组,逐步将温度压入栈中;
  2. 当遇到下一个高温(temperatures[i] > deque.peek()[0])时,使用while循环弹出结果,并将当前温度压入数组

代码

class Solution {public int[] dailyTemperatures(int[] temperatures) {Deque<Integer[]> deque = new ArrayDeque<>();int[] result = new int[temperatures.length];for (int i = 0; i < temperatures.length; i++) {if (!deque.isEmpty() && deque.getLast()[0] < temperatures[i]){ // 说明出现了下一个大温度while (!deque.isEmpty() && deque.getLast()[0] < temperatures[i]){Integer[] popElem = deque.removeLast();result[popElem[1]] = i - popElem[1];}}deque.addLast(new Integer[]{temperatures[i], i});}return result;}
}
http://www.lryc.cn/news/477849.html

相关文章:

  • 2025年知识管理新方案:十款前沿知识库搭建工具详解
  • WebSocket实现消息实时推送
  • flink 内存配置(三):设置JobManager内存
  • 蓝桥杯 Python组-神奇闹钟(datetime库)
  • 解决阿里云三个月证书过期 免费SSL证书部署教程
  • VBA03-变量
  • docker-ce-stable‘ 下载元数据失败 : Cannot download repomd.xml: Cannot download
  • C中定义字符串有下列几种形式
  • 写一个小日历
  • 【数据库】elasticsearch
  • Rust 构建 TCP/UDP 网络服务
  • docker镜像文件导出导入
  • ViT面试知识点
  • ChatGPT 和 RAG(检索增强生成)的区别;ChatGPT 和 RAG 的联系
  • qt获取本机IP和定位
  • CodeQL学习笔记(5)-CodeQL for Java(AST、元数据、调用图)
  • 服装品牌零售业态融合中的创新发展:以开源 AI 智能名片 S2B2C 商城小程序为视角
  • 前端将网页转换为pdf并支持下载与上传
  • Android 依赖统一配置管理(Version Catalogs)
  • 如何为数据看板产品接入实时行情接口并展示行情
  • 数据结构 C/C++(实验一:线性表)
  • 使用WebStorm开发Vue3项目
  • Linux高阶——1103——Signal信号机制
  • 如何编写STM32的定时器程序
  • 【C++】C++的单例模式、跟踪内存分配的简单方法
  • 构建一个导航栏web
  • 【Linux】Linux安全与密钥登录指南
  • 数据采集之scrapy框架
  • ReactPress—基于React的免费开源博客CMS内容管理系统
  • Android 解决飞行模式下功耗高,起伏波动大的问题