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

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

(一)问题描述

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中的元素
  • 如果栈为空,先将元素入栈
  • 如果不为空,比较它和栈顶元素的大小,如果小于栈顶元素则入栈,大于栈顶元素则将栈顶元素出栈,此时遍历到的元素就是距离栈顶元素最近的高温天气,可知它距离栈顶元素天数为当前索引-栈顶元素。
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.kler.cn/a/516567.html

相关文章:

  • Scade 表达式 - 使用索引的迭代器
  • 云原生时代,如何构建高效分布式监控系统
  • 15-spring整合mybatis方式一
  • 动态内存管理
  • solidity基础 -- 存储类型
  • 澎峰科技计算软件栈与沐曦GPU完成适配和互认证
  • 2.2.2 大小写敏感性
  • Facebook广告零支出无消耗:可能原因与解决方法
  • 鞅的定义_
  • Ubuntu二进制部署K8S 1.29.2
  • C语言数组详解:从基础到进阶的全面解析
  • bat批处理删除此电脑左侧及另存为下文档视屏等多余项
  • [java] java基础-字符串篇
  • PyTorch入门 - 为什么选择PyTorch?
  • arcgis for js只显示范围内的天地图,其余部分透明
  • Vue基础(2)
  • 前k个高频元素力扣--347
  • 详解C#中的特性(Attribute)
  • 小游戏源码开发搭建技术栈和服务器配置流程
  • 独立开发者产品日刊:将 Figma 设计转化为全栈应用、对话 PDF生成思维导图、视频转 AI 笔记、AI问答引擎、Mac 应用启动器切换器
  • Python散点统计栅格化
  • 动态规划(路径问题)
  • 安宝特方案 | AR在供应链管理中的应用:提升效率与透明度
  • HTML常用标签
  • Docker基础安装与使用
  • LatentSync数字人,一键批量,口型同步,MPS加速(WIN/MAC)