![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数组、栈、队列、链表
YAOSHIAO
这个作者很懒,什么都没留下…
展开
-
AcWing 154. 滑动窗口(C++算法)
AcWing 154. 滑动窗口1、题目(来源于AcWing):给定一个大小为n≤106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。您的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入格式输入包含两行。第一行包含两个整数n和k,分别代表数组长度和滑动窗口的长度。第二行有n个整数,代表数组的具体数值。同行数据之间用空格隔原创 2020-07-22 17:18:24 · 1904 阅读 · 0 评论 -
AcWing 830. 单调栈(C++算法)
AcWing 830. 单调栈1、题目(来源于AcWing):给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。输入格式第一行包含整数N,表示数列长度。第二行包含N个整数,表示整数数列。输出格式共一行,包含N个整数,其中第i个数表示第i个数的左边第一个比它小的数,如果不存在则输出-1。数据范围1≤N≤1051≤数列中元素≤109输入样例:53 4 2 7 5输出样例:-1 3 -1 2 22、基本思想:①先用暴力作法发现要用两重循环,时间复杂原创 2020-07-21 21:27:32 · 347 阅读 · 0 评论 -
AcWing 829. 模拟队列(C++算法)
AcWing 829. 模拟队列1、题目(来源于AcWing):实现一个队列,队列初始为空,支持四种操作:(1) “push x” – 向队尾插入一个数x;(2) “pop” – 从队头弹出一个数;(3) “empty” – 判断队列是否为空;(4) “query” – 查询队头元素。现在要对队列进行M个操作,其中的每个操作3和操作4都要输出相应的结果。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令为”push x”,”pop”,”empty”,”qu原创 2020-07-21 15:30:32 · 303 阅读 · 0 评论 -
AcWing 828. 模拟栈(C++算法)
AcWing 828. 模拟栈1、题目(来源于AcWing):实现一个栈,栈初始为空,支持四种操作:(1) “push x” – 向栈顶插入一个数x;(2) “pop” – 从栈顶弹出一个数;(3) “empty” – 判断栈是否为空;(4) “query” – 查询栈顶元素。现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。输入格式第一行包含整数M,表示操作次数。接下来M行,每行包含一个操作命令,操作命令为”push x”,”pop”,”empty”,”query”中原创 2020-07-21 15:20:23 · 213 阅读 · 0 评论 -
AcWing 827. 双链表(C++算法)
AcWing 827. 双链表1、题目(来源于AcWing):实现一个双链表,双链表初始为空,支持5种操作:(1) 在最左侧插入一个数;(2) 在最右侧插入一个数;(3) 将第k个插入的数删除;(4) 在第k个插入的数左侧插入一个数;(5) 在第k个插入的数右侧插入一个数现在要对该链表进行M次操作,进行完所有操作后,从左到右输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数原创 2020-07-20 17:14:15 · 267 阅读 · 0 评论 -
AcWing 826. 单链表(C++算法)
AcWing 826. 单链表1、题目(来源于AcWing):实现一个单链表,链表初始为空,支持三种操作:(1) 向链表头插入一个数;(2) 删除第k个插入的数后面的数;(3) 在第k个插入的数后插入一个数现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…第n个插入的数。输入格式第一行包含整数M,表示操作次数。接下原创 2020-07-20 10:06:45 · 437 阅读 · 1 评论