LeetCode、739. 每日温度【中等,单调栈】

文章目录

前言

博主介绍:✌目前全网粉丝2W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、算法、分布式微服务、中间件、前端、运维、ROS等。

博主所有博客文件目录索引:博客目录索引(持续更新)

视频平台:b站-Coder长路


LeetCode、739. 每日温度【中等,单调栈】

题目链接及分类

题目链接:LeetCode、739. 每日温度

分类:数据结构/栈/单调栈


思路

单调栈

思路:单调栈一般用来解决 next greater element 问题(求一侧最近的更大/小的元素),单调栈也是"空间换时间"思想的一个实际应用。

  • 本题是找到对比当前温度的最近温度高的元素。此时就是对应着使用单调栈来进行处理,对于找到最近高温度的都是对出栈的元素处理的。

复杂度分析:时间复杂度O(n);空间复杂度O(n)

java 复制代码
class Solution {
    //10万温度
    //单调栈  当前元素与栈顶元素比较 将符合条件的温度出栈此时就可以找到该温度后最近的比它高的温度
    public int[] dailyTemperatures(int[] temperatures) {
        int n = temperatures.length;
        //单调栈
        Stack<Integer> stack = new Stack<>();
        //结果集
        int[] res = new int[n];
        //遍历所有的温度
        for (int i = 0; i < n; i ++) {
            //取得当前的温度与栈中温度比较 弹出的温度即可确定最近的温度是哪个
            while (!stack.isEmpty() && temperatures[i] > temperatures[stack.peek()]) {
                int index = stack.pop();//索引位置
                res[index] = i - index;//后几天
            }
            //将当前的温度索引入栈
            stack.push(i);
        }
        return res;
    }
}

资料获取

大家点赞、收藏、关注、评论啦~

精彩专栏推荐订阅:在下方专栏👇🏻

更多博客与资料可查看👇🏻获取联系方式👇🏻,🍅文末获取开发资源及更多资源博客获取🍅


整理者:长路 时间:2024.2.13

相关推荐
pianmian12 小时前
python数据结构基础(7)
数据结构·算法
考试宝3 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
好奇龙猫4 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20244 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸5 小时前
链表的归并排序
数据结构·算法·链表
jrrz08285 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time5 小时前
golang学习2
算法
面试鸭5 小时前
离谱!买个人信息买到网安公司头上???
java·开发语言·职场和发展
南宫生6 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步6 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝