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

算法练习题06:leetcode793每日温度

单调栈解法 

class Solution {public int[] dailyTemperatures(int[] temperatures) {int length = temperatures.length;int[] ans = new int[length];Stack<Integer> stack = new Stack<>();for(int i = 0;i<length;i++){int temperature = temperatures[i];while(!stack.isEmpty()&&temperature>temperatures[stack.peek()]){int pre = stack.pop();ans[pre] = i - pre;}stack.push(i);}return ans;}
}

 不管咋样反正栈为空就先入栈,然后栈中存的是数组中数的索引,遍历这个数组,如果下一个数字比栈顶索引在数组中的值小,那么继续push压入栈,反之,下一个数字比栈顶索引在数组中的值大,那么就达成我们的目的了,找到比栈顶大的数了,那么pop弹出栈顶,i与弹出的那个索引做差值,就是弹出元素索引处的目标值,就是我们要的。画图看的更清楚。


http://www.mrgr.cn/news/15586.html

相关文章:

  • [米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-22读写I2C接口的RTC时钟芯片
  • 讯鹏科技智慧公厕专业供应商,解读智慧公厕有哪些奥秘
  • python-读取word中的内容
  • 2024最新盘点:CRM 客户管理系统哪个好用?
  • 格式化漏洞-加载so函数
  • 深入理解 Java 中 Map 和 Set 接口的高级用法
  • 论文翻译:Scaling Instruction-Finetuned Language Models
  • FineReport帆软报表:使用JAVA批量更新报表里的数据集连接名
  • Python——类装饰器
  • 【方法】如何编辑“只读方式”下的Word文档?
  • 2024年第四届《英语世界》杯全国大学生翻译大赛
  • Rocksdb一些日志
  • carla unreal engine源码:如何创建radar可视化探测锥
  • ESP32应用开发-Webserver
  • 大数据技术之Flume 数据流监控——Ganglia 的安装与部署(11)
  • 【惠农网-注册安全分析报告】
  • 前端页面调用本地exe,打开exe主界面
  • MathType常见问题汇总
  • Python中的数据类型知识汇总
  • 《黑神话:悟空》一只横扫全球的中国“猴子”,这里也有!