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

栈----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.xdnf.cn/news/16354.html

相关文章:

  • 226. 翻转二叉树
  • C语言(长期更新)第6讲:函数
  • (LeetCode 每日一题) 2210. 统计数组中峰和谷的数量 (数组)
  • 【RAG技术权威指南】从原理到企业级应用实践
  • Spring Boot音乐服务器项目-查询音乐模块
  • 【自动化运维神器Ansible】Ansible常用模块之archive模块详解
  • QT---概览
  • Spring AI 学习笔记
  • Datawhale 科大讯飞AI大赛(模型蒸馏)
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • i节点学习
  • 7月27日星期日今日早报简报微语报早读
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • Flink2.0学习笔记:Stream API 常用转换算子
  • Java面试实战:电商高并发与分布式事务处理
  • QT开发---网络编程下
  • JVM工具
  • Item16:成对使用new和delete时要采取相同形式
  • Milvus 实战全流程
  • 【重学数据结构】堆 Heap - 最小堆最大堆
  • Qt GUI缓存实现
  • SpringIoCDI
  • Adobe Animate中文版 v2024.24.0.10.14
  • python---类型转换
  • Flink窗口:解锁流计算的秘密武器
  • 9.SpringBoot Web请求参数绑定方法
  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • 【优选算法】BFS解决最短路问题(单源)
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)