- 2024-09-10【C++ Primer Plus习题】14.3
大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:main.cpp#include<iostream>#include"queuetp.h"usingnamespacestd;intmain(){ Queue
- 2024-09-10C++中STL容器的使用
容器一些基本操作语法vector初始化操作vector<int>a;//声明向量vector<int>a(10);//声明一个初始大小为10的向量vector<int>a(10,1);//初始大小为10,且值都为1的向量vector<int>b(a);//声明并用向量a初始化向量bvector<int>b(a.begin(),a.begin()+3);//将
- 2024-09-09LeetCode 239. 滑动窗口最大值(滑动窗口)
题目:239.滑动窗口最大值思路:用一个双端队列来保存滑动窗口内的值按大到小排序,时间复杂度0(n)。细节看注释classSolution{public:vector<int>maxSlidingWindow(vector<int>&nums,intk){ //元素值是nums的下标,满足nums值按大到小排序deque<in
- 2024-09-08DAY11 栈与队列part02
逆波兰式求值代码随想录(programmercarl.com)1classSolution{2public:3intevalRPN(vector<string>&tokens){4stack<longlong>st;5for(inti=0;i<tokens.size();i++)6{78if(tokens[i]=="+
- 2024-09-08【C++ Primer Plus习题】12.5
大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:main.cpp#include<iostream>#include<cstdlib>#include<ctime>#include"queue.h
- 2024-09-07浙大数据结构:02-线性结构4 Pop Sequence
这道题我们采用数组来模拟堆栈和队列。简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop1、条件准备stk是栈,que是队列。tt指向的是栈中下标,front指向队头,rear指向队尾。初始化栈顶为0,队头为0,队尾为-1#include<iostream>usingn
- 2024-09-05单调队列
单调队列经典用法:维持滑动窗口滑动过程中的最大值或最小值。最大值时,单调队列从头到尾降序维持求解答案的可能性单调队列里所有对象按照规定好的单调性组织当某个对象从队尾进入单调队列时,会从队头或者队尾依次淘汰单调队列里,对后续求解答案没有帮助的对象每个对象一旦弹出
- 2024-09-02[数据结构] 循环队列
front:头指针rear:尾指针maxsize:数组长度循环队列通常会让留空数组中的一位,区分队列为空和队列为满的状态。入队移动rear,出队移动front。形式1(默认):front指向队头元素的前一位,而rear指向队尾元素。队列为空:front==rear队列为满:front==(rear+1)%maxsize元素个数:(r
- 2024-09-01【链式队列的实现】
1.链式队列与循环顺序队的比较1.1链式队列优点动态扩展:不需要预先分配固定的存储空间,内存使用灵活,不会因为队列满而导致溢出。插入和删除操作简单:在链式队列中,插入和删除操作只需调整指针,无需移动数据,时间复杂度为O(1)。无容量限制:只要系统有足够的内存,链式
- 2024-09-01数据结构 栈与队列 --循环队列
栈和队列--循环队列文章目录栈和队列--循环队列前言一、队列是什么?1.2时间复杂度比较1.3难题及解决二、队列的实现2.1循环队列结构体实现2.2循环队列基本操作总结前言前情提要:之前的文章讲了队列和栈的基本概念,今天来讲队列的具体实现一、队列是什么?队
- 2024-08-30栈和队列的实现
1栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数
- 2024-08-29huawei0821笔试第二题笔记:双端队列deque
intsolve(deque<int>machines,constvector<int>&tasks){for(inttask:tasks){intcnt=0;//首件不匹配while(cnt<machines.size()&&task!=machines.front()){machines.push_back(machines.
- 2024-08-29数据结构(C)---双端队列(Deque)
在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决定之前,请咨询相
- 2024-08-27二叉树的层序遍历 C++
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]classSolution{public:vector<vect
- 2024-08-27算法与数据结构——队列
队列队列(queue)是一种遵循先入先出规则的线性数据结构。队列模拟了排队现象,即新来的人不断加入队列尾部,而队列头部的人逐个离开。如图所示,我们将队列头部称为“队首”,尾部称为“队尾”,将把元素加入队列尾部的操作称为“入队”,删除队首元素的操作称为“出队”。队列常用操作
- 2024-08-24P10957 环路运输 题解
题目传送门前置知识单调队列/单调栈优化解法在仓库\(1\)和\(n\)之间把环断开,然后复制一倍接在末尾,形成长度为\(2n\)的直线公路,即有\(a_{i}=a_{i+n}(1\lei\len)\)。对于原来环形公路上的任意两座仓库\(i,j(1\lej<i\len)\),代价为\(\begin{cases}a_{i}+a_{j}
- 2024-08-23数据结构day04(队列 Queue 循环队列、链式队列)
目录【1】队列Queue1》队列的定义 2》循环队列3》链式队列 【1】队列Queue1》队列的定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(FirstInFirstOut)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端
- 2024-08-22队列
队列1.基本概念及描述队列也是一种特殊的线性表,队列的插入和删除在表的两端进行,插入的那端称为队尾,删除的那端叫做队首,插入和删除操作分别叫做进队和出队。生活中的排队购票现象就是队列的例子,先到先享受,队列具有“先进先出”(FirstInFirstOut)的特点.2.顺序队列及其实现C语
- 2024-08-20二分查找法
二分查找法定义:二分查找也称折半查找(BinarySearch),它是一种效率较高的查找方法。前提:1.必须采用顺序存储结构。2.必须按关键字大小有序排列。我们以一个练习题为例:假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.思路:可设三个变量front,mid,end分别指向数据
- 2024-08-20数据结构-队列 c语言使用链表和数组分别实现
队列定义队列(queue)是一种遵循先入后到规则的线性数据结构,将队列头部称为“队首”,尾部称为“队尾”,把元素加入队尾称为“入队”,删除队首元素称为“出队”。队列实现基于链表的实现将链表的头节点和尾结点分别视为“队首”和“队尾”,规定队尾仅可添加节点,队首仅可删除节点。
- 2024-08-12数据结构 顺序队列(计数器版)
在实现循环队列时,为了区分队列为空和队列满的情况,我们通常会浪费一个位置。也就是说,如果队列的总容量是100,那么实际上只能存储99个元素。这是因为我们需要保留一个位置来判断队列是满的还是空的。如果我们不这样做,那么在队列满和队列空时,front和rear指针都会指向同一个位置,
- 2024-08-11暑假训练第四周周报
总体情况这一周学习了最近公共祖先,并且了解了dijkstra的模板,也在比赛中补了一些最短路的题,然后图的专题还没开始刷,这一周把搜索和搜索剪枝的专题差不多写完了,对dfs的各种代码实现更加深入了,但是搜索是一大块内容,涉及的题目多样经典。我想着后面对这些题再慢慢分个类,不然真正比赛
- 2024-08-10P1725 琪露诺 题解
思路动态规划,单调队列动态规划观察题目,发现下标为\(i\)的点只能对\([i+l,i+r]\)区间的点产生贡献。设\(f_i\)为到达点\(i\)时的最大冻结指数。易得状态转移方程式:\(f_k\leftarrow\max(f_k,f_i+a_k),(k\in[i+l,i+r])\)。若直接对该方程进行转移,时间复
- 2024-08-07【数据结构与算法】删除循环队列中第k个元素的算法 C++实现(循环队列+模运算)
数组a[MaxSize]用作一个循环队列,front指向循环队列中队头元素的前一个位置,rear指向队尾元素的位置。设计删除队列中第k个元素的算法。思路首先,判断kkk是否在有效范围内
- 2024-08-07【数据结构与算法】在循环队列中第k个元素之后插入元素的算法 C++实现(循环队列+模运算)
数组a[MaxSize]用作一个循环队列,front指向循环队列中队头元素的前一个位置,rear指向队尾元素的位置。设计在队列中第k个元素之后插入item的算法。思路首先,检查输入的位置k是否在合理的范围内,即1到queueSize(Q)(包含两端)。如果k在这个范围外,那么返回ERROR。然后,计