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

栈----4.每日温度

739. 每日温度 - 力扣(LeetCode)

/**

        单调栈:

            首先将元素逐个入栈,栈中存放元素的索引。

            入栈时进行判断,若待入栈元素比栈顶元素大,则下标相减得到栈顶元素的answer,将栈顶元素弹出

            重复上述流程继续判断,直到 待入栈元素 <= 栈顶元素,入栈判断数组中下一个元素

            若数组遍历完毕,栈中还有元素,则栈中剩余元素answer为0

*/

class Solution {/**单调栈:首先将元素逐个入栈,栈中存放元素的索引。入栈时进行判断,若待入栈元素比栈顶元素大,则下标相减得到栈顶元素的answer,将栈顶元素弹出重复上述流程继续判断,直到 待入栈元素 <= 栈顶元素,入栈判断数组中下一个元素若数组遍历完毕,栈中还有元素,则栈中剩余元素answer为0*/public int[] dailyTemperatures(int[] temperatures) {//初始化,定义answer记录结果int len = temperatures.length;int[] answer = new int[len];//栈Deque<Integer> stack = new ArrayDeque<>();for(int i = 0; i < len; i++) {//若待入栈元素比栈顶元素大,则下标相减得到栈顶元素的answer,将栈顶元素弹出while(!stack.isEmpty() && temperatures[i] >temperatures[stack.peek()]) {int index = stack.pop();answer[index] = i - index;}//直到待入栈元素 <= 栈顶元素,将元素入栈stack.push(i);}return answer;}
}

http://www.lryc.cn/news/601391.html

相关文章:

  • 2.qt调试日志输出
  • 多智能体系统设计:协作、竞争与涌现行为
  • Day4.AndroidAudio初始化
  • bash的特性-常用的通配符
  • bash的特性-命令和文件自动补全
  • C++ 多线程(一)
  • 第六章 JavaScript 互操(2).NET调用JS
  • ios UIAppearance 协议
  • 「iOS」————消息传递和消息转发
  • 携带参数的表单文件上传 axios, SpringBoot
  • 深度解读Go 变量指针
  • [每周一更]-(第152期):Go中的CAS(Compare-And-Swap)锁原理详解
  • iOS安全和逆向系列教程 第20篇:Objective-C运行时机制深度解析与Hook技术
  • 结合Golang语言说明对多线程编程以及 select/epoll等网络模型的使用
  • goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
  • 学习Python中Selenium模块的基本用法(1:简介)
  • Day06–哈希表–242. 有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和
  • 仓库管理系统-2-后端之基于继承基类的方式实现增删改查
  • 7.25 C/C++蓝桥杯 |排序算法【下】
  • macOS 安装 Homebrew
  • JavaScript事件(event)对象方法与属性
  • mac配置多版本jdk
  • C#中Visual Studio平台按照OfficeOpenXml步骤
  • Min-Max标准化​ 和 ​Z-score标准化
  • Python队列算法:从基础到高并发系统的核心引擎
  • LeetCode|Day27|70. 爬楼梯|Python刷题笔记
  • Spring Retry 异常重试机制:从入门到生产实践
  • Spring Boot自动配置原理深度解析
  • 适配IE11(通过Babel+core-js转译ES6语法)
  • Flutter 生命周期介绍