当前位置: 首页 > 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/news/283054.html

相关文章:

  • 微信小程序:点击事件(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
  • 为什么需要对即将上线的系统进行压力测试
  • 数学建模学习(120):使用Python实现基于AHP的供应商选择分析
  • k8s中service对象
  • github源码指引:共享内存、数据结构与算法:平衡二叉树set带有互斥接口的
  • 怎样还原空白试卷?2024快速空白试卷还原软件合集
  • 算法练习题: 文本左右对齐
  • 【Java-存储超大整数】
  • Git 分支操作全解析:创建、切换、合并、删除及冲突解决
  • SpringBoot+Vue餐馆点菜系统小程序
  • Spring MVC学习路线指南