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

leetcode739.每日温度

给定一个整数数组 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]

碎碎念:这道题必须用栈实现,常规暴力双层循环会超时

    //注意:栈存储的是下标值,而不是数值
    public int[] dailyTemperatures(int[] temperatures) {
        int[]dailyTemperatures=new int[temperatures.length];
        Stack<Integer> stack=new Stack<>();
        for(int i=0;i<temperatures.length;i++){
            if(!stack.empty()&&temperatures[i]>temperatures[stack.peek()]){
                while(!stack.empty()&&temperatures[i]>temperatures[stack.peek()]){
                    dailyTemperatures[stack.peek()]=i-stack.peek();
                    stack.pop();
                }
            }
            stack.push(i);
        }
        return dailyTemperatures;
    }


http://www.kler.cn/a/469792.html

相关文章:

  • STM32之CAN通讯(十一)
  • Python递归(汉诺塔问题)
  • 1/7距离放假一周加1
  • opencv CV_TM_SQDIFF未定义标识符
  • Backend - EF Core(C# 操作数据库 DB)
  • 五个不同类型的数据库安装
  • C++二十三种设计模式之原型模式
  • 浏览器解析过程
  • Python中超过15位小数的高精度计算
  • springCloudGateWay使用总结
  • 【操作系统】课程 4调度与死锁 同步测练 章节测验
  • C语言:枚举类型
  • Markdown编辑器——Typora(Picgo+Github图床)
  • 【归一化】RMSNorm
  • 并发安全问题解析
  • 内核链表 例题 C语言实现
  • Qt——网络编程
  • 网络协议安全的攻击手法
  • 如何进行千万级别数据跑批优化
  • GitHub 基础使用指南
  • Go语言的 的数据封装(Data Encapsulation)核心知识
  • 深入了解 ES6 Map:用法与实践
  • Ruby语言的字符串处理
  • matlab中几个取整函数的区别
  • Django AWS负载均衡器管理系统
  • XXL-CRAWLER v1.4.0 | Java爬虫框架