0
点赞
收藏
分享

微信扫一扫

寒假摸鱼大赏

AbrahamW 2022-02-19 阅读 65
算法c++

寒假摸鱼大赏

前言:大一上跑去摸deep learning的鱼去了,原本的算法学习耽搁了很久。前不久,本半吊子选手终于决定gap半年,从零开始,享受并拥抱做普通人的快乐。

文章目录

单调栈和单调队列
  • 单调栈常用题型:给定一个序列,找到序列当中每一个数,它的左(右)边比它小(大)且离其最近的数。

    e.给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。

#include<bits/stdc++.h>
using namespace std;

const int N=100010;
int stk[N],tt;

int main()
{   int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        int x;
        scanf("%d",&x);
        while(tt && stk[tt]>=x) tt--;
        if(tt) printf("%d ",stk[tt]);
        else printf("-1 ");
        
        stk[++tt]=x;
    }
    return 0;
}
  • 单调数列常用题型:滑动窗口

e.有一个长为 n n n的序列 a a a,以及一个大小为 k k k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。

最小值获取

举报

相关推荐

0 条评论