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

算法练习题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.kler.cn/a/283054.html

相关文章:

  • 软件测试面试大全(含答案+文档)
  • 山泽光纤HDMI线:铜线的隐藏力量
  • AcWing 302 任务安排 斜率优化的dp
  • leetcode hot100【LeetCode 114.二叉树展开为链表】java实现
  • 使用 Visual Studio Installer 彻底卸载 Visual Studio方法与下载
  • STM32单片机WIFI语音识别智能衣柜除湿消毒照明
  • 微信小程序:点击事件(bindtap)传递参数
  • 面试官让简述一下elasticsearch
  • 图论----最小生成树讲解与相关题解
  • 开源低代码LLM编排平台Dify:可视化Agent和工作流,如何部署在自己系统中,自定义修改前后端详解
  • Oracle SYSAUX表空间使用率过高进行清理
  • #C++ 笔记三
  • 太速科技-FMC213V3-基于FMC兼容1.8V IO的Full Camera Link 输入子卡
  • 资料搜索过程样例 - 10吨电动葫芦的缆绳重量
  • 利用OpenCV根据图片识别环境的亮度
  • Linux WPA/WPA2/WPA3/IEEE 802.1X Supplicant
  • C++ 模板基础知识——类模板、变量模板与别名模板(超长纯享版)
  • 【C++】RAII思想与智能指针原理——有效避免内存泄露问题
  • 萤石云 C++ SDK使用指南
  • STL容器中 list(双向链表)的增删改查
  • 51单片机——定时器
  • Unity获取SceneView尺寸
  • Docker 镜像导出与加载:从入门到精通
  • redis(未授权访问漏洞)
  • Mysql集群相关技术
  • 数分基础(03-3)客户特征分析-Tableau