自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 15届蓝桥备赛(5)

打家劫舍、得到更多分数的最少关卡数目、买卖股票的最佳时机、买卖股票的最佳时机II、买卖股票的最佳时机III、最长递增子序列、最长重复子数组、最长公共子序列、判断子序列、不同的子序列、两个字符的删除操作、编辑距离、回文子串、最长回文子序列

2024-04-06 10:43:20 1055

原创 15届蓝桥备赛(4)

动态规划、01背包、使用最小花费爬楼梯、整数拆分、不同的二叉搜索树、分割等和子集、最后一块石头的重量II、目标和、一和零、完全背包、零钱兑换II、组合总和IV零钱兑换、完全平方数、单词拆分

2024-03-30 20:16:57 890

原创 15届蓝桥杯备赛(3)

回溯算法、组合、组合总和III、电话号码的字母组合、组合总和、组合总和II、分割回文串、子集、子集II、非递减子序列、全排列、全排列II、贪心算法、分发饼干、最大子数组和、买股票的最佳时机II、跳跃游戏

2024-03-25 13:25:20 1117

原创 15届蓝桥杯备赛(2)

二分查找、在排序数组中查找元素的第一个和最后一个位置、寻找旋转排序数组中的最小值、搜索旋转排序数组、反转链表、反转链表II、相同的树、对称二叉树、平衡二叉树、二叉树的右视图、验证二叉搜索树、二叉树的最近公共祖先、二叉搜索树的最近公共祖先、二叉树层序遍历、二叉树的锯齿形层序遍历、找树左下角的值

2024-03-18 15:06:38 1013

原创 15届蓝桥杯备赛

两数之和、刷题统计、贪心、重新分装苹果、幸福值最大化的选择方案、相向双指针、三数之和、盛最多水的容器、接雨水、同向双指针(滑动窗口)、长度最小的子数组、乘积小于k的子数组、无重复字符的最长字串、动态规划、不同路径、最小路径和、不同不同路径II、三角形最小路径和

2024-03-13 20:12:08 848 1

原创 cpp---提高

/自己写一个谓词public://没有谓词默认升序//遍历算法it!= v.end();it++)cout

2023-12-11 21:48:47 78

原创 手敲C++基础

在Circle类中含有Point类对象center,所以在实例化Circle类对象的时候会先调用Point类的构造函数然后再是Circle类的构造函数,在函数结束之前的析构函数调用时机与构造函数调用时机恰恰相反,先调用Circle类的析构函数再调用Point类的析构函数。在写后加的时候,由于也没有参数并且函数名和作用域相同,会导致函数重定义的情况,所以我们在写后加重载的时候会在参数中加个int,这对应的是你类中私有成员的数据类型。如果是访问父类的变量和函数,我们就需要加上其父类的作用域。

2023-11-28 16:20:23 1047

原创 数学建模(Python)

函数调用大致相同,就是多了一个plt.fill_between()函数,这个是填充颜色的函数,几个参数分别是自变量,下界,上界,颜色,透明度和标签。range(start, end, step)左闭右开所以不包括end,step表示以step个间隔。Figure对象是画布,而子图是实际绘图的区域。第二个for循环添加了具体数值的注释,以展示每个数据点的数值即y点坐标,第一个for循环是输出5根线,分别包括以下属性:线样式、颜色、线条粗细。—不可修改,同列表类似,[]换成()—>用{},但空集用set()

2023-11-21 19:50:11 63

原创 MySQL进阶篇

特点:1、DML(增删改)操作遵循ACID模型(原子性、一致性、隔离性、持久性),支持事务;2、行级锁;3、支持外键逻辑存储结构:表空间->段->区(1M)->页(16K)->行特点:1、不支持事务,不支持外键;2、支持表锁,不支持行锁;3、访问速度快特点:1、速度快;2、hash索引。

2023-10-31 20:16:47 55

原创 MySQL学习笔记(基础入门篇)

几个注意的点:1、创建字符串类型用varchar(num) 2、comment 之后为注释,可写可不写 3、最后一个字段没有括号4、逗号和分号都要是英文输入5、单词一定不能打错比如create和comment。取消自动提交改为手动提交,执行程序段之后表中数据暂时不会改变,此时查看控制台各语句是否正常执行,如果正常执行则执行提交事务,反之则执行回滚事务。幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了幻影。4、查询所有小于40的员工,及其归属部门名称;

2023-10-12 23:21:24 76

原创 Linux学习笔记(CentOS)

打开VMware->编辑->虚拟网络编辑器->选VMnet8->子网IP 192.168.88.0 子网掩码255.255.255.0->NAT设置网关IP192.168.88.2然后保存->打开终端进入root用户-> 输入 vim /etc/sysconfig/network-script/ifcfg-ens33然后进行如图操作。Linux的目录结构是一个树型结构,Linux没有盘符这个概念,只有一个根目录 / ,所有文件都在它下面。1、将文件移到文件夹中。命令:即Linux程序。

2023-10-04 13:38:52 83 1

原创 队列的最大值、解密数字、珠宝的最高价值、招式拆解(无重复字符的最长字串)、丑数

这里使用的find函数是c++中STL内置算法,其返回值是迭代器,找到了就返回该位置的迭代器,没找到就返回末尾迭代器。卡壳点就在下标的关系是模糊的,需要自己设定,而并不是一定与前一个数据有倍数上的关系,而是与前面中的某个数有关系。总结:该方法解决了我最初想法卡壳的地方,就是寻找其左边相同字符的下标,应当从j-1的位置向左边遍历,所以告诉我们做题不能一贯性思维。d.empty() && d.back() < value)确保双端队列里是非递减的,值得注意的是,不能写成d.back()

2023-10-02 07:08:27 28

原创 【操作系统】散记知识点

并发性和共享性互为存在条件。

2023-09-14 22:51:41 36

原创 用两个栈实现队列、反转链表、包含min函数的栈

这里最开始误以为是需要自己定义一个栈,结果并不是,在min函数中出现了问题:使用冒泡排序让时间超时了。此题方法是在类中使用两个栈,a记录传入的数据,b记录更新的最小值。当出栈时,出栈元素是最小元素a,b栈都需要出栈,此时b栈顶元素更新,最小值也跟着变化。第一遍遍历,对于每个节点 cur,创建一个新节点,值和 cur 相同(构造函数体现了出来),并将新节点存入哈希表 map 中,建立原节点到新节点的映射关系。两次的栈操作就相当于了先入先出,需要注意的是:每次取出完一个数据之后,就需要将b栈再重新压回a栈。

2023-07-23 19:21:04 68

原创 替换空格、从尾到头打印链表

思路在:新字符串长度 = 原字符串长度 + 2 * 空格个数,然后从后往前遍历填好新数组的空,并且这里需要两个游标变量i和j。依据题意,该链表是个单向链表只有next指针,所以只能从前往后遍历。想要达到从后往前的效果可以利用辅助栈法和递归的思想。

2023-07-22 17:10:19 32

原创 【数据结构】排序技术

public ://构造函数,生成待排序序列 ~ Sort();//析构函数 void InsertSort();//直接插入排序 void ShellSort();//希尔排序 void BubbleSort();//气泡排序 void QuickSort(int first , int last);//快速排序 void SelectSort();//简单选择排序 void HeapSort();//堆排序 void MergeSort1(int first , int last);

2023-07-21 21:07:22 44

原创 数据结构---线性表的查找技术(顺序查找、二分查找递归与非递归)

算法改进:设置哨兵。哨兵就是待查值,存放在查找方向的尽头处,在查找过程中每次比较后,不用判断查找位置是否越界,从而提高查找速度。实践证明,这个改进在表长大于1000时,进行一次顺序查找的平均时间几乎减少一半。在线性表中进行查找通常属于静态查找,这种查找算法简单,主要适用于小型查找集合。

2023-07-10 15:04:41 145

原创 图的存储结构及实现---邻接矩阵和邻接表(深度优先遍历和广度优先遍历)

关键在于两种遍历方式的理解,所以视频一定要理解清楚。

2023-06-29 07:46:43 251

原创 【数据结构】极大队列基本操作实现

优先队列的入队操作先将待插元素x插入队尾位置,然后将新插入元素从叶子向根方向进行调整,若新插入元素比双亲大,则进行交换,这个过程一直进行到根结点或新插入元素小于其双亲结点的值。或者每个结点的值都大于或等于其左右孩子结点的值(成为大根堆)。由于优先队列的队头元素位于堆顶,因此出队操作直接输出栈顶元素,为维护堆的性质,将队尾元素放到根结点,然后调整根结点重新建堆。是按照某种优先级进行排列的队列,优先级越高的元素出队越早,优先级相同按照先进先出的原则进行处理。定义PriQueue类。

2023-06-25 23:14:10 59

原创 二叉链表前序、中序、后序遍历非递归算法的实现

若栈不空,则弹出栈顶指针并根据栈顶指针找到右子树的根指针赋予bt,继续遍历下去。后序遍历与另外两个有所不同,当遍历完左子树,由于右子树尚未遍历,因此栈顶结点不能出栈,而是通过栈顶结点找到它的右子树,当遍历完右子树,才能将栈顶结点出栈并访问。在二叉树中序遍历中,访问结点的操作发生在该结点的左子树遍历完毕并且准备遍历右子树时,所以,在遍历过程中遇到某结点时并不能立即访问它,而是将它压栈,= nulllptr,表明当前二叉树不为空,此时应输出根结点bt的值并将bt保存到栈中,准备继续遍历bt的左子树。

2023-06-15 17:18:36 264

原创 哈夫曼算法建立最优二叉树

前两个for循环分别标记出没有父亲结点的数组下标,if语句目的在让i1始终保持是权值较小的那个的下标。最后一个for循环遍历剩下的权值寻找最小的结点。2.对于节点之间的连接,可以通过记录父亲和孩子节点的下标来完成。介绍一下Select函数:实现查找最小的两个权值的下标,因为返回值是两个,所以函数参数为引用。:从根结点到各个叶子结点的路径长度与相应叶子结点权值的乘积之和称为二叉树的带权路径长度。:带权路径长度最小的二叉树称为最优二叉树,也称哈夫曼树。:是对叶子结点赋予的一个有意义的数值量。

2023-06-13 14:36:26 134

原创 【力扣刷题】---动态规划746. 使用最小花费爬楼梯、1137. 第 N 个泰波那契数

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2。输入:cost = [1,100,1,1,1,100,1,1,100,1]支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。支付 1 ,向上爬一个台阶,到达楼梯顶部。

2023-06-12 15:42:12 38

原创 【数据结构】---发纸牌、八皇后问题、memset出现的错误

确实,memset 函数并不适用于初始化动态分配的数组,因为它只能对连续内存块进行填充。你提到的问题是关于使用 memset 初始化动态分配的数组的正确性。在这种情况下,我们需要使用其他方法来初始化动态分配的数组。解决办法:for循环、fill函数(代码注释中已实现)

2023-06-07 23:18:15 35

原创 【贪吃蛇小项目】

我认为是项目里面最关键的部分。是由静态的蛇变成动态蛇的关键:从最后节点依次赋值成前节点,而头节点即snake.coor[0]用switch讨论上下左右的情况,在此之下再讨论当走到边界的时候从另一个边界出来。还有:写在while(1)的死循环里面蛇就能动起来啦。画图形的时候几个函数的调用顺序不能改变,我也不知道为什么。下和右分别是x,y轴的正方向;上和左分别是x,y轴的逆方向。POINT本身就是一个结构体,包括x,y坐标。

2023-06-07 14:51:43 95

原创 数据结构、算法题联系(BFS广度优先、动态规划、并查集、一维前缀和、二分查找)

该算法流程大致如下:先将初始位置记录下来入队(队列元素包括三要素:起点坐标x,y和步骤,所以这里定义了一个结构体,然后queue容器以该结构体为模板),循环结束的标志是队列为空或者找到该最短步骤。absabd中的absa 因为bs是false 那么absa也是false,就是利用字串bs为false直接推出absa为false,而不用再重新判断其是否为回文串。经过调试之后发现是数组v的索引出了问题,因为数组下标是从0开始的,所以应当也要对第0行和第0列进行初始化,如示例一。共m行,每行输出一个询问的结果。

2023-06-01 22:50:24 72

原创 【数据结构】顺序栈和链栈的实现

【代码】【数据结构】顺序栈和链栈的实现。

2023-05-19 23:44:56 32

原创 【数据结构】线性表应用举例--链表实现约瑟夫环和一元多项式求和

据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式:41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。为了使计数器从1开始计数,采用尾指针指示的循环单链表,将指针pre初始化为指向终端节点,将指针p初始化为指向开始节点。N = 5, M = 3时出圈次序:3,1,5,2,4。

2023-05-19 12:50:52 97

原创 【数据结构】单链表的实现

单链表插入操作,如要插入到第i个位置,即在i-1和i之间插入新数据。那么必须先扫描链表,找到第i-1个位置的存储地址然后使用插入算法。单链表是动态存储分配的,单链表的节点是在程序运行中动态申请的,因此,在单链表变量退出作用域之前,要释放单链表的存储空间。画图实在累,直接拍照了。

2023-05-14 15:52:51 92

原创 顺序表的实现【数据结构】

将顺序表抽象数据类型用C++的类实现。其中成员变量实现顺序表存储结构,成员函数实现线性表的基本操作。由于线性表的数据元素类型不确定,所以采用C++的模板机制。插入操作,在第i个位置插入值为x的元素。按值查找 返回序号(不是下标)遍历操作,按序号依次输出各元素。按位查找,查找第i个元素的值。删除操作,删除第i个元素。

2023-05-13 13:59:13 60

原创 LeetCode53.最大字串和

动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后呢,把子问题答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法。给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]子数组 是数组中的一个连续部分。输入:nums = [1]

2023-05-03 10:46:35 30

原创 【Web开发入门】---①

vs code自动生成骨架。基于.html文件中"!"+回车生成骨架代码。在浏览器中显示效果:文字加粗 字号逐渐减小 独占一行。引号里面输入./会提示出该文件夹中所含图片。作用:明确标签的书写位置;既可跳转到网址上,又可跳转到本地文件夹。标签名:h1~h6一级标题至六级标题。鼠标悬停在图片上的时候显示的文字。跳转到网址上常用绝对路径复制网址。跳转到本地文件夹常用相对路径写法。图片的宽度 值为数字 没有单位。图片的高度 值为数字 没有单位。图片无法显示的时候显示的文字。标签包括单标签和双标签。

2023-04-28 18:42:40 38

原创 C++【数据结构与算法】顺序栈的实现和案例

顺序栈是栈的顺序实现。顺序栈是指利用顺序存储结构实现的栈。采用地址连续的存储空间(以159为例:第一次159%8=19…7 将19计为新num 7存入栈中。第二次19%8=2…3 将2计为新num 3存入栈中。2 将0计为新num 2存入栈中。num为0跳出循环 再将栈中元素依次出栈得出237。该十进制转换算法使用的是取余求法。所以157的8进制数为237。)依次存储栈中数据元素。

2023-04-26 19:44:19 76

原创 括弧的匹配

先将{存入栈中,进入循环发现(与{不匹配那么(也入栈,进入下一循环发现 ( 与 )相匹配那么(出栈进入下一次循环…思路:可以用栈的知识解决。利用栈先进后出的特征解决此题。主要流程如下: 以"{()[[]]}"为例。

2023-04-26 19:14:15 53

原创 LeetCode1.两数之和

执行用时180ms,内存消耗9.8MB。这里用的是两层for循环实现的暴力算法,时间复杂度为O(n^2)。看到进阶,就去试了试时间复杂度更小的算法。进阶:你可以想出一个时间复杂度小于 O(n2) 的算法吗?使用哈希表之后执行用时明显少了很多,但内存空间的消耗会增大。(图来源于LeeCode id:画手大鹏)

2023-04-21 23:33:59 29

原创 STL常用算法汇总

algorithm > , < functional > , < numeric > //头文件。遍历算法transform&for_each 查找算法find find_if adjacent_find binary_search count count_if 排序算法sort random_shuffle merge reverse 拷贝和替换算法copy replace replace_if swap 算术生成算法accumulate fill 常用集合算法set_intersection

2023-04-20 08:38:29 336

原创 内建函数对象(仿函数)

# 算术仿函数### 功能描述:- 实现四则运算- 其中negate是一元运算,其他都是二元运算关系仿函数逻辑仿函数

2023-04-17 23:28:06 39

原创 黑马C++项目实操演讲比赛流程管理系统

/随机数 包含头文件#include srand((unsigned int) time(NULL));rand() %是以时间创建一个随机数种子rand()%代表创建了一个大小从60到100的一个随机的双精度score对rand() % 401 + 600的理解不要死记。rand() % 401表示正数对401取余 那么它的值为0-400,加上600则整体的范围是600-1000。

2023-04-16 21:02:20 442 1

原创 图解循环双链表&顺序表与链表的比较

作为一般规律:若线性表需要频繁查找则使用顺序表,若需要频繁插入和删除数据则使用链表。当线性表中元素个数变化较大或者未知时,最好使用链表,如果事先直到线性表大致长度,那么使用顺序表的空间效率会更高。链表包括单链表、循环链表、双链表和循环双链表,这里主要介绍循环双链表的插入和删除操作。特点:1、每个数据元素类型相同。2、用一维数组实现。3、分配固定长度的数组空间。顺序表理解起来比较简单,就是一维数组的增删改查操作。是用一段地址连续的存储单元依次存储线性表的数据元素。

2023-04-08 11:18:32 76 1

原创 【蓝桥杯】

给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.观察式子的规律:可以提公因式S=a1·a2+(a1+a2)·a3+(a1+a2+a3)·a4+···+(a1+a2+a3+···+an-2+an-1)·an。需要注意的是 这里提完公因式后一共只有 n-1项,这是循环的边界。

2023-03-28 22:24:27 198

原创 C++以数组类封装巩固C++基础知识

C++数组类封装

2023-03-25 22:37:07 132 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除