• Day58|单调栈part01:739. 每日温度、496. 下一个最大元素


    每日温度
    leetcode链接:力扣题目链接
    视频链接:单调栈,你该了解的,这里都讲了!LeetCode:739.每日温度、
    给定一个整数数组 temperatures ,表示每天的温度,
    返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,
    下一个更高温度出现在几天后。如果气温在这之后都不会升高,
    请在该位置用 0 来代替。

    示例 1:

    输入: temperatures = [73,74,75,71,69,72,76,73]
    输出: [1,1,4,2,1,1,0,0]
    示例 2:

    输入: temperatures = [30,40,50,60]
    输出: [1,1,1,0]
    示例 3:

    输入: temperatures = [30,60,90]
    输出: [1,1,0]

    首先看暴力解法,两重循环,最后超时了:
    class Solution {
    public:
    vector dailyTemperatures(vector& temperatures) {
    vector res(temperatures.size(), 0);
    for(int i = 0; i < temperatures.size(); i++){
    for(int j = i + 1; j < temperatures.size();j++){
    if(temperatures[j] > temperatures[i]){
    res[i] = j - i;
    break;
    }
    }
    }
    return res;
    }
    };
    单调栈解法
    单调栈的作用:对于一维数组,可以 方便的找到右边第一个比他大/小的元素是什么。
    单调栈就是一个栈,里面存放下标。
    遍历顺序:从栈顶到栈口的顺序,递增或者递减。
    如果是递增,求得就是第一个比它大的元素的位置;
    如果是递减,求得就是第一个比它小的元素的位置;

  • 相关阅读:
    kafka+zookeeper群集
    状压dp。
    01Spring的Ioc思想和依赖注入手段(DI)
    诊断DLL——CAPL_DLL集成安全访问算法
    报错:axios 发送的接口请求 404
    HarmonyOS创建项目和应用—设置数据处理位置
    【CGAL_网格处理】坐标变换
    Spring Boot配置文件
    55.【Java 线程】
    [课程笔记](图像分割入门到实战)
  • 原文地址:https://blog.csdn.net/weixin_43303286/article/details/132742036