leetcode-剑指offer59-I 滑动窗口的最大值

leetcode-剑指offer59-I 滑动窗口的最大值2020-8-13这道题我实在没想到什么好方法,就暴力求解了。看了题解才知道stl里面还有双端队列这个数据结构,可是还是没看懂大佬们怎么用,只知道大概是维护了一个最小栈。等过几天更新大佬们的解法。https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/暴力解法classSolution{public:intget_Max(queue<int>que){

大家好,又见面了,我是你们的朋友全栈君。

2020-8-13

这道题我实在没想到什么好方法,就暴力求解了。看了题解才知道stl里面还有双端队列这个数据结构,可是还是没看懂大佬们怎么用,只知道大概是维护了一个最小栈。等过几天更新大佬们的解法。

https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/

暴力解法

class Solution {
public:
    int get_Max(queue<int> que)
    {
        int max_num = que.front();
        while(!que.empty())
        {
            max_num = max(que.front(), max_num);
            que.pop();
        }
        return max_num;
    }

    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        queue<int>que;
        vector<int>ans;
        if(nums.empty())
            return ans;
        int max_num = nums[0];
        for(int i=0;i<k;i++)
        {
            que.push(nums[i]);
            max_num = max(max_num, nums[i]);
        }
        
        ans.push_back(max_num);
        for(int i=1;i+k<=nums.size();i++)
        {
            que.pop();
            que.push(nums[i+k-1]);
            if(nums[i-1] == max_num)
            {
                max_num = get_Max(que);
            }
            else
                max_num = max(nums[i+k-1], max_num);
            ans.push_back(max_num);
        }
        return ans;
    }
};

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158572.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C++实现字符串分割函数split()「建议收藏」

    C++实现字符串分割函数split()「建议收藏」目录使用strtok()完成分割使用strsep()完成分割使用strtok_r()完成分割实现字符串分割前言最近遇到了一个字符串分割的问题,在C++的标准库里面没有字符分割函数split()。我想这个问题今后可能还会再遇见,所以使用C/C++中的字符串分割方法完成相应的功能。需求:对一个字符串进行分割,然后将分割后的数据存起来,想用的时候像用数组那样拿就行了。所以在完…

  • matlab axis坐标轴相关设置详解

    matlab axis坐标轴相关设置详解

  • jupyter如何运行代码_python jupyter notebook安装

    jupyter如何运行代码_python jupyter notebook安装python-mpipinstall–upgradepippython3-mpipinstall–upgradepip

  • kali更新源没有mysql_Kali更新源添加

    kali更新源没有mysql_Kali更新源添加    2.按键盘A进行对更新源的输入;3.常见的更新源如下:3.1中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontrib3.2阿里云debhttp://m…

  • 矩阵行列式的几何意义是什么_矩阵的几何意义和物理意义

    矩阵行列式的几何意义是什么_矩阵的几何意义和物理意义矩阵行列式的几何意义 行列式的定义: 行列式是由一些数据排列成的方阵经过规定的计算方法而得到的一个数。当然,如果行列式中含有未知数,那么行列式就是一个多项式。它本质上代表一个数值,这点请与矩阵区别开来。矩阵只是一个数表,行列式还要对这个数表按照规则进一步计算,最终得到一个实数、复数或者多项式。 一阶行列式 (注意不是绝对值) …

    2022年10月30日
  • slam技术前景_哄哄什么

    slam技术前景_哄哄什么原标题:牛逼哄哄的SLAM技术即将颠覆哪些领域?什么是SLAM?机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是随后的路径规划(Navigation)。之前地平线的高翔博士用这样一句话概括SLAM的释义。不过实际生活中的SLAM都是和激光雷达或者单目/双目摄像头结合的形式出现在我们面前的,有时甚至跟更多的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号