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

leetcode hot100 每日温度

在这里插入图片描述
在本题中,我们是通过单调栈来解决的,因为我们采用了栈的数据结构,并且,栈内存储的元素是单调的。

本题我们考虑,将气温数组元素的下标存入栈中,首先初始化要把0放入,0是下标的意思。然后我们拿下标为1的元素也就是74和下标为0的元素比较,74>73,所以我们计算完二者的距离(下标的差值),然后把结果存到一个数组中。然后将下标0弹出栈,因为这个点的距离已经获取了,然后再将下标1压入栈中。

如果遇到当前元素没有栈中的下标对应的元素大,直接将该下标压入栈中,继续往后比较。

class Solution {// 版本 1public int[] dailyTemperatures(int[] temperatures) {int lens=temperatures.length;int []res=new int[lens];/**如果当前遍历的元素 大于栈顶元素,表示 栈顶元素的 右边的最大的元素就是 当前遍历的元素,所以弹出 栈顶元素,并记录如果栈不空的话,还要考虑新的栈顶与当前元素的大小关系否则的话,可以直接入栈。注意,单调栈里 加入的元素是 下标。*/Deque<Integer> stack=new LinkedList<>();stack.push(0);for(int i=1;i<lens;i++){if(temperatures[i]<=temperatures[stack.peek()]){stack.push(i);}else{while(!stack.isEmpty()&&temperatures[i]>temperatures[stack.peek()]){res[stack.peek()]=i-stack.peek();stack.pop();}stack.push(i);}}return  res;}

注意:stack中
在这里插入图片描述

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

相关文章:

  • 【Java EE初阶二十六】简单的表白墙(二)
  • 【wpf】关于绑定的一点明悟
  • 叠罗汉游戏
  • 太阳能风吸式杀虫灯是什么
  • SpringBoot启动扩展应用:干预优化+加快启动时间
  • 探索Linux世界:初次接触和基本指令(文件操作)
  • 递归函数(c++题解)
  • Qt将Unicode转换成UTF8中文
  • HTTP 的 multipart 类型
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(二)
  • 为何代理IP的稳定性不如有线IP?
  • 【c++】 string类的模拟实现
  • transformer--transformer模型构建和测试
  • 从0到1全流程使用 segment-anything
  • Window系统部署Splunk Enterprise并结合内网穿透实现远程访问本地服务
  • Windows服务器:通过nginx反向代理配置HTTPS、安装SSL证书
  • LeetCode67 二进制求和
  • python | 列表,元组,字符串,集合,字典
  • 稀疏图带负边的全源最短路Johnson算法
  • oracle基础体系
  • k8s运维问题整理
  • 设计模式(一)设计模式分类和六大设计原则
  • git的学习与使用(笔记最全)
  • windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志
  • 学习python时一些笔记
  • php基础学习之错误处理(其二)
  • 云计算 2月28号 (linux的磁盘分区)
  • demo型xss初级靶场
  • 【推荐算法系列十八】:DSSM 召回算法
  • CNAN知识图谱辅助推荐系统