Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >739. 每日温度

739. 每日温度

作者头像
名字是乱打的
发布于 2022-01-12 08:44:44
发布于 2022-01-12 08:44:44
41400
代码可运行
举报
文章被收录于专栏:软件工程软件工程
运行总次数:0
代码可运行

一 题目:

二 思路:

单调栈 这里注意,如果气温在这之后都不会升高,则将该位置用0来代替。

  • 根据以上的信息,我们可以先创建一个temperatures等长的全零数组,然后初始化一个栈
  • 这里注意由于需要返回相差天数,所以栈中需要保存元素下标来实现天数计算。
  • 下来循环temperatures进行栈的操作,循环过程中,持续判断当前下标温度与栈顶下标温度的大小差别
  • 如果当前下标的温度大于栈顶下标的温度,表示找到了下一个更大的温度,弹出栈顶下标,计算天数差别,
  • 更新res[栈顶下标] = 当前下标 - 栈顶下标
  • 否则将当前下标加入栈顶
  • res中没有更新的元素,表示未找到更高的温度,最终返回ret即可。

三 代码:

单调栈法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    /**
     * 单调栈法
     * @param temperatures
     * @return
     */
    public int[] dailyTemperatures(int[] temperatures) {
        //存储没找到更高温度的下标
        Stack<Integer> stack=new Stack<>();
        //结果集
        int[] res=new int[temperatures.length];

        for (int i = 0; i < temperatures.length; i++) {
            while (!stack.isEmpty()&&temperatures[stack.peek()]<temperatures[I]){
                Integer index = stack.pop();
                res[index]=i-index;
            }
            stack.push(i);
        }

        return res;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.01.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
单调栈——739. 每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
向着百万年薪努力的小赵
2022/11/20
3120
单调栈——739. 每日温度
leetcode刷题(85)——739.每日温度
根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
老马的编程之旅
2022/06/22
2090
LeetCode-739-每日温度
请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。
benym
2022/07/14
1620
力扣739——每日温度
根据每日气温列表,请重新生成一个列表,对应位置的输入是你需要再等待多久,温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
健程之道
2020/02/26
6060
​LeetCode 739:每日温度 Daily Temperatures
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
爱写bug
2019/08/08
9130
每日三题-接雨水、柱状图中最大的矩形、每日温度
👨‍💻个人主页: 才疏学浅的木子 🙇‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 🙇‍♂️ 📒 本文来自专栏: 算法 🌈 算法类型:Hot100题 🌈 每日三题 接雨水 柱状图中最大的矩形 每日温度 接雨水 解法一 暴力(按列求) 获取离当前节点最远左右两边比当前节点值大的值height[l],hright[r] 因为决定装水容量的是矮的所以取height[l],hright[r] 中小的那个减去height[i]就是当前节点可以存放的水,然后遍历 class Solutio
才疏学浅的木子
2022/11/13
2190
每日三题-接雨水、柱状图中最大的矩形、每日温度
力扣739.每日温度
本题很容易想到的一种解法是,使用两层for循环,计算每个位置后面第一个比自己大的元素位置。代码如下:
ccf19881030
2023/04/06
2090
力扣739.每日温度
这个题如何用栈解呢?
今天又给大家挑了一道十分经典的题目,也是一道面试常考题目,所以大家记得打卡啊,我们先来看一下题目描述,题目很容易理解,而且用暴力法也很容易实现,因为这个题目出现了我们的栈的模块,大家能不能用栈实现呢?
公众号袁厨的算法小屋
2020/11/25
3730
这个题如何用栈解呢?
一天一大 leet(每日温度)难度:中等 DAY-11
根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
前端小书童
2020/09/24
2180
一天一大 leet(每日温度)难度:中等 DAY-11
单调栈算法详解_单调栈和单调队列
https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/
全栈程序员站长
2022/11/08
2800
单调栈算法详解_单调栈和单调队列
【甘泉算法】一文搞定单调栈问题
本文主要利用单调栈来解决leetcode上的典型问题,其实它的应用范围倒是不广,主要解决的都是类似于leetcode上下一个更大元素的问题,本文将从这类问题出发,帮助大家掌握单调栈的应用技巧。主要题型如下所示:
itlemon
2022/01/10
8800
【甘泉算法】一文搞定单调栈问题
力扣每日一刷(2023.9.24)
本题其实可以使用暴力解法实现的, 但是力扣的时间复杂度分析的有问题, O(n2)的时间复杂度尽然过不了。
用户11097514
2024/05/31
1240
力扣每日一刷(2023.9.24)
LeetCode 739. 每日温度(单调栈)
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
Michael阿明
2020/07/13
3160
LeetCode 739. 每日温度(单调栈)
JS算法探险之栈(Stack)
今天,我们继续探索JS算法相关的知识点。我们来谈谈关于栈Stack的相关知识点和具体的算法。
前端柒八九
2022/08/25
6600
JS算法探险之栈(Stack)
LeetCode 739:每日温度(超容易理解的解法!!!)
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
五分钟学算法
2021/03/10
2.2K0
单调栈-LeetCode 739、287(单调栈,桶计数)
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。
算法工程师之路
2019/11/14
6440
Java实现请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temp
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。 考察Deque栈的性质
编程张无忌
2021/01/26
9030
Java实现请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。  例如,给定一个列表 temp
单调栈
单调栈,就是一个栈,不过栈内元素保证单调性。即,栈内元素要么从小到大,要么从大到小。而单调栈维护的就是一个数前/后第一个大于/小于他的数。
为为为什么
2022/08/09
4720
单调栈
【LeetCode】739. 每日温度
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。
韩旭051
2020/06/23
3580
【LeetCode热题100】【栈】每日温度
用单调栈记录下标,先将头个温度下标压入栈,判断栈顶温度是否比当天温度低,低则更新低温的天数弹栈,高则继续压栈,这样栈里面的温度必定是递减的,一遇到温度高的便可同步更新低温的天数
叶茂林
2024/04/08
1250
推荐阅读
相关推荐
单调栈——739. 每日温度
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验