自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法与数据结构:二分查找与跳跃表

本笔记属于船说系列课程之一,课程链接:哔哩哔哩_bilibili你也可以选择购买『船说系列课程-年度会员』产品『船票』,畅享一年内无限制学习已上线的所有船说系列课程:船票购买入口。

2024-05-16 15:17:30 706

原创 C++类和对象项目:斗地主残局(做为程序员怎么能被人机虐)

小小人机我不弄你!!!

2024-05-10 19:49:51 802 2

原创 C++笔记:类与对象(三)->多态

a是Animal的引用类行而指向的是c对象,p是Animal的指针类型指向对象c的地址。那么我们认为的结果应该都是调用Cat类型中的run方法,但是结果却是调用的Animal中的run方法那么如何完成我们想要的效果呢,把基类中也就是Animal类中的run()方法变为虚函数,在父类中对应函数前加上virtual关键字,再子类中对应的函数后加上override关键字。这样过后执行整个代码,就可以得到我们想要的效果了。

2024-05-03 17:40:45 706

原创 C++笔记:类和对象(二)->继承

C++继承的基础知识,以及设计C++代码时关于继承的注意事项

2024-04-29 13:12:42 574

原创 C++笔记:C++中的重载

对于类内和类外的运算符和重载的笔记,以及对左值和右值引用的理解,还有新的构造函数移动构造函数的讲解

2024-04-23 17:43:35 486

原创 数据结构与算法笔记:线性建堆

本笔记属于船说系列课程之一,课程链接:哔哩哔哩_bilibili你也可以选择购买『船说系列课程-年度会员』产品『船票』,畅享一年内无限制学习已上线的所有船说系列课程:船票购买入口。

2024-04-22 17:16:38 598

原创 数据结构与算法笔记:最优变长编码:哈夫曼编码

哈夫曼编码代码实现,以及对编码,定长编码,变长编码的理解

2024-04-19 18:18:22 994

原创 数据结构与算法:二叉树与广义表

二叉树转广义表,广义表转二叉树的思想和代码实现

2024-04-19 15:40:36 569

原创 C++笔记:类和对象(一)->封装

认识类和对象,类中的访问权限,构造函数和析构函数,构造函数的初始化列表,构造函数和析构函数的调用顺序,类方法和类属性,const引用, 类的声明和定义,default和delet关键字,对象和引用,返回值优化

2024-04-16 19:44:34 755

原创 树-广度优先遍历和深度优先遍历

对于广度优先和深度优先遍历,不仅仅是对树的进行遍历,对于它们作用的理解,可以带入到相应的场景进行对它们的使用。t=N7T8t=N7T8哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep66799?船票购买入口https://www.bilibili.com/cheese/pages/packageCourseDetail?

2024-04-15 16:45:38 899

原创 C++笔记:STL容器库的使用

前置: 对于stl容器库,我只做了一些常用的笔记,关于更详细的使用可以参考:https://cppreference.com/https://cppreference.com/一.string--字符串对于C++中string字符串会比C语言的字符数组使用起来会顺手许多。命名空间:std关于迭代器可以理解为指针,和指针的使用方法差不多,对于迭代器更细的描述会在后续的笔记中更新。代码运用:#include <iostream>#include

2024-04-09 12:54:36 544

原创 C++笔记:学习使用C++

C++最简单的使用,理解命名空间和如何使用cin和cout的使用

2024-04-09 10:19:38 346

原创 数据结构与算法笔记:递归函数设计技巧

递归函数的技巧

2024-04-07 17:27:33 1061

原创 C语言笔记:文件操作

C语言对于文件的操作,实现一个简单学生管理系统,对文件指针位置的操作,以二进制形式读写文件

2024-04-03 17:15:39 1049

原创 Linux如何连接github仓库

其中,username是您的 GitHub 用户名,repository是您要连接的仓库名称,也就是最开始创建的仓库名。

2024-04-01 18:53:14 1028

原创 C语言笔记:重学输入和输出

本章主要内容,对3个标准流的认识,以及对scanf函数的从新认识,最后对printf函数的一些功能的实现

2024-03-26 22:07:21 927

原创 C语言笔记:预处理命令与结构体

记住这两句话就可以:#的作用:将#后面的内容字符串化##的作用: 将两个内容连接到一起,比如a##b,将a和b连接到一起//这里的宏表示 执行func函数,并且打印func函数名以表func函数执行结束func;//这个宏定义的作用是将a和b进行连接到一起return;return;return 0;源代码截图:待编译源码:可以发现,之前用宏定义的代码全部被替换了。//定义结构体需要用struct关键字int age;} person;

2024-03-25 22:55:02 978

原创 C语言笔记:指针与数组

对于地址,数组,指针的笔记以及代码解释

2024-03-24 18:51:36 782

原创 C语言笔记:函数与程序结构

函数定义和使用,形参和实参的理解,函数的定义和声明,递归函数,欧几里得算法,扩展欧几里得算法,变参函数,主函数参数

2024-03-19 19:23:25 721

原创 C语言笔记:控制流

C语言控制流的笔记,以及代码的讲解

2024-03-15 17:41:59 941

原创 C语言笔记:类型、运算符与表达式

C语言类型,输入输出函数,基本运算符,以及常用数学函数的笔记

2024-03-10 21:44:03 1085

原创 数据结构——二叉树线索化遍历(前中后序遍历)

二叉树线索化是一种将普通二叉树转换为具有特殊线索(指向前驱和后继节点)的二叉树的过程。这种线索化的目的是为了提高对二叉树的遍历效率,特别是在不使用递归或栈的情况下进行遍历。将二叉树线索化的主要目的是为了提高对二叉树的遍历效率以及节省存储空间。线索化使得在不使用递归或栈的情况下可以更快速地进行遍历,特别是在特定顺序的遍历时,如前序、中序或后序遍历。:线索化后,可以在常量时间内找到节点的前驱和后继节点,从而实现更高效的遍历。这对于需要频繁遍历大型二叉树或需要在树的中间部分执行插入和删除操作时特别有用。

2023-09-07 16:56:44 2073 1

原创 数据结构——单调队列

单调队列,leetcode例题题解

2023-09-04 16:57:13 419

原创 数据结构——单调栈

单调栈性质,以及力扣84题的带入讲解

2023-09-03 14:35:52 461

原创 数据结构——哈希表

哈希表的实现--防冲突法(拉链法)

2023-09-01 16:41:14 2221 2

原创 算法——排序

8种排序算法

2023-08-31 14:39:35 716

原创 数据结构——堆

物理结构:他的物理结构有,第一个数据域,堆元素的个数,堆存储元素个数的最大值;//堆里现在的元素个数和堆的大小void *data;//数据域。

2023-08-30 13:46:12 617

原创 数据结构——树

二叉树是树的一种树形结构,它的特点就是,一个结点最多只有两个子孩子结点(下文中可能会分为左右孩子),并且左右还在结点不能交换顺序,不能颠倒;typedef struct Node {//结点定义void val;//值域,可以是int,char等等类型//指针域,用来存下一个结点的地址的} Node;typedef struct Node {//结点定义void val;//值域,可以是int,char等等类型//指针域,用来存下一个结点的地址的,分别为左孩子和右孩子} Node;逻辑结构。

2023-08-29 11:35:55 600

原创 数据结构——栈

咱们先不管栈的数据结构什么,先了解栈是什么,栈就像一个桶一样,你先放进去的东西,被后放进的的东西压着,那么就需要把后放进行的东西拿出才能拿出来先放进去的东西,如图1,就像图1中样子:图1翻译后就是先进后出;

2023-08-28 11:53:14 993

原创 数据结构--队列与循环队列

队列 队列是什么,先联想一下队,排队先来的人排前面先出,后来的人排后面后出;队列的性质也一样,先进队列的数据先出,后进队列的后出;就像图一的样子:图1 如图1,1号元素是最先进的,开始出队时,那么他就是最先出的,然后12进队,就应该排在最后面,等待前面的所有元素出队完成后才能出队;有个专业的名词叫FIFO(first in first out),翻译过来就是先进先出的意思;队列的数据结构: 数据结构 = 结构定义 + 结构操作;

2023-08-27 17:21:42 511

原创 数据结构-链表

那么链表的结构定义是什么?他的物理结构和逻辑结构分别是什么?在学习一个新的数结构之前需要这要问一下自己,这样你的思路会更清晰,也不会混乱;

2023-08-26 16:06:46 2172

原创 数据结构——顺序表

数据结构开章!顺序表!

2023-08-25 12:15:38 2016

原创 欧拉计划50题

3.求道每个质数加上之前的和后,进行开始枚举,因为题目给出了1000以下最长是21,那么就两个循环,外循环就从2开始,那么内循环就从2往后移21个质数的位置开始,那么就有22个连续的质数,用一个变量存现在最长的连续质数的长度,进行实时更新,如果发现改变就更新,也更新他们的和;2.求出每个质数加上之前质数的和,假如当前质数为5,那么他的和就为10。1000 以下最长的和为质数的连续质数序列包含 21 个项,和为 953。这是 100 以下的最长的和为质数的连续质数序列。1.求出100以下的质数,线性筛。

2023-08-24 11:05:18 128

原创 欧拉计划49题

1487, 4817, 8147 这个序列,每个比前一个递增 3330,而且这个序列有两个特点:1. 序列中的每个数都是质数。那么条件一很好满足,条件二利用线性筛找出10000以下的质数,条件3利用2进制来存储位置上的数,将十进制的数的每位映射到二进制中的位置来表示;那么有了上面这个方法,就很好去判断条件3,就将这3个数分别映射入二进制中,并判读他们映射后的二进制是否相等就可以了;为什么一个数需要用两位,因为在4位数中如果这个数为质数,那相同的数最多存在3个,所以两位二进制刚好是3;

2023-08-24 10:16:03 62

原创 欧拉计划48题

比如10 * 10 mod 10 = ((10 mod 10) * (10 mod 10)) mod 10 = 0。性质2:下面可以说明两个数的和的余等于两个数先取余再相加在取余。性质1:这可以说明两个数乘积余等于两个数先取余在相乘在取余。在假如a mod c = d。假如a mod c = d。这个题目会用到同余定理,带入上面的推导结结果。,并给出其最后十个数字作为答案。最终答案:9110846700。求自幂级数的前一千项求和,即。自幂级数的前十项求和为。

2023-08-23 10:31:21 71

原创 欧拉计划47题

2.通过每个质数从1-n(n * 质数小于上面的范围)开始乘得到这个质数在这个范围里的每个数,用数组存起来+1,那么最终可以得到每个数有多少个质因数;30 = 5 * 6 那么5标记一次+1 现在30的质因子个数为3。30 = 3 * 10 那么3标记一次+1 现在30的质因子个数为2。举个例子 30 = 2 * 15 那么2标记一次+1 现在30的质因子个数为1。首次出现连续四个数均有四个不同的质因数时,其中的第一个数是多少?最终得到30的质因子个数为3个;1.如何求一个数的质因数个数。

2023-08-23 09:55:00 70

原创 欧拉计划46题

这个题目,通过枚举来实现,枚举每个数,去减去比他小的素数,然后再通过二分来找余数的是否可以构成2 * i^2,最终这样可以找到不满足这个条件的第一个数;克里斯蒂安·哥德巴赫曾经猜想,每个奇合数都可以写成一个素数和一个平方的两倍之和。不能写成一个素数和一个平方的两倍之和的最小奇合数是多少?3.枚举,减去比他小的素数,再二分查找;1.线性筛,将质数筛出来。2.二分找平方和的两倍。线性筛在我文章欧拉计划。最终这个猜想被推翻了。

2023-08-22 11:12:32 107

原创 欧拉计划45题

这个题目,每个函数都是单调递增的,所以可以用二分法来进行解决,比如求出三角形数,然后利用二分法去查找五边形数和六边形数的n;时间复杂度为O(logn)级别;我准备还是用反函数去求,这样时间复杂度为O(1),这样可以节省更多时间;二分的话,我直接把代码写出来把过程就不推导了;找出下一个同时是三角形数、五边形数和六边形数的数。最终答案: 1533776805。三角形数五边形数六边形数。

2023-08-22 10:46:47 101

原创 欧拉计划44题

通过上面的两个推倒可以发现,求到的第一个满足差和都位5边形数就是最小的D值;这个题的难度不在于求D的值,在于枚举上界,那么问题的上界是多少?而j是从k-1开始的,那么反过来,j越小,那么。就越大,说明也没有枚举的必要了,假如j = k-1时,然而,它们的差70−22=48并不是五边形数。为什么因为D要求的是最小值,而。假设D就是求到的最小解。在所有和差均为五边形数的五边形数对。说明k没有枚举的必要了 ,会随着n的变大而变大那么,最终答案:5482660。说明j没有枚举的必要了;会随着k增大而增大;

2023-08-21 12:26:14 123

原创 欧拉计划43题

进行对第一点分析,找10个位置,第一个位置放了一个数,那么这个数就在后面不能用了,所以需要记录这个位置放了的数,后面依次进行这样的操作;到最后一个位置填完最后一个数时,进行回溯,回溯到第二位置,进行填之前没有填过的数,一直回溯加递归加循环的一个过程,就可以求到,0-9全数字的全排列;对第二点分析,可以在第一点求得的情况下,讲数字进行每位存储在数组中,那么就可以很好的找到每位的数组进行来判断了;这个题目要求,满足0-9全数组的数,并且每3位会满足题目条件的数的和,那么进行分析;1.如何求0-9全数字。

2023-08-21 11:50:27 63

C++中的重载思维导图

跟着文章C++中重载的思维导图,我会不定时的更新

2024-04-24

C++类和对象,思维导图

C++类和对象,会跟着文章更新而更新

2024-04-24

空空如也

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

TA关注的人

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