自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 强化训练:day6(大数加法、链表相加、大数乘法)

今天的问题主要是处理 "大数加法"问题。大数加法链表相加大数乘法。对于大数加法这部分的知识来说,我觉得还是比较重要的,因为在现实中总会出现很大的数字,仅靠long long是无法存储的,那么就需要使用这种方式来处理数据。

2024-04-30 16:30:42 436

原创 C++11

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。

2024-04-30 16:29:25 719 3

原创 强化训练:day5(游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)

游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)。

2024-04-27 17:23:19 443 1

原创 Linux:信号

信号量和信号是两码事,大家不要搞混了噢。本章主要讲解了有关信号的一系列知识,其中使用了许多系统调用,比较难以记忆,希望大家可以多加练习来尝试理解,共勉!!!如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习Linux,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!

2024-04-24 20:50:10 762 2

原创 强化训练:day4(BC149 简写单词、dd爱框框、除2!)

BC149 简写单词dd爱框框除2!,分别涉及模拟、滑动窗口、堆(优先级队列)的内容。模拟题没什么好说的,对于滑动窗口,本质就是用双指针来维护一个符合条件的区间,然后不断进窗口和出窗口,一直找到所有符合条件的结果,一般就是用于一段子区间求和,上面的例题就是典型的滑动窗口问题,多画图多看多走读代码就能理解了。而最后一个题就是堆的简单使用,不理解的话可以看看有关堆的相关知识,在这我就贴一个链接,有兴趣的可以看看堆的知识。二叉树与堆。

2024-04-24 20:48:28 416

原创 Linux:进程间通信

数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变前面其实我们也接触过进程间通信,那就是 | 这个符号。进程间通信的本质是:让不同的进程先看到同一份资源。

2024-04-23 09:24:54 1022 11

原创 强化训练:day3(Fibonacci数列、单词搜索、杨辉三角)

WY22 Fibonacci数列NC242 单词搜索BC140 杨辉三角。

2024-04-23 09:21:11 508

原创 Linux:文件

文件的原理是什么?我们是如何向文件中写入的?先提出一个问题,一个空文件放到磁盘上,它有大小吗?

2024-04-22 10:50:07 944 4

原创 强化训练:day2(牛牛的快递、最小花费爬楼梯、数据中两个字符串的最小距离)

今天的内容比昨天的稍难一些,今天涉及到了dp问题,本来之前是打算先写一些算法总结的,但是时间不太充裕,就没写,以后我再补上。补不补都是后话了,我们先来看今天的内容。

2024-04-22 10:48:29 791

原创 Linux:进程控制

前面我们学习了进程的一系列概念,接下来就继续来学习有关进程的操作。本章主要讲解了进程是如何进行工作的,尤其是进程替换部分,可以让大家对进程的工作有一个全新的理解。如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习Linux,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!

2024-04-18 16:02:33 1000 9

原创 强化训练:day1(数字统计、两个数组的交集、点击消除)

为了提升自己的编码能力,我决定展开持续N天的训练计划,计划是每天写最少三道编程题,来训练自己,同时为了加强理解,决定以博客的形式,将自己的做题过程记录下来,即为进一步加强做题思路,也为了后续方便复习。(我是C++选手,因此我的题解都是C/C++写的,对于其他的语言,看看解题思路就好了)一开始需要从易到难了,不然真就是从入门到入土了……,第一天的还是比较简单,主要是第三题第一次写的时候超时了,还是后续看了别人的题解才想到这个方法,因此我的目标是:难题会做就行,简单题要用更少的时空复杂度来完成。

2024-04-18 16:01:36 804

原创 Linux:进程

经过前面的介绍,仅仅只是学会了在Linux下的编程,接下来我们将深入学习有关操作系统的相关知识。本文内容包括冯诺依曼体系结构、进程的概念、进程状态、进程优先级、进程间切换、命令行参数、环境变量、进程地址空间等内容。本章讲解了有关进程的一系列概念,内容有很多,最关键的部分是要理解操作系统是如何进行管理计算机内部的一系列资源的,要牢记先描述,再组织这一思想。

2024-04-14 09:43:26 945 3

原创 Linux:环境基础开发工具使用

前面已经介绍了一些指令内容,本章将会继续介绍在Linux上安装软件,已经编译器的使用,代码的调试等等内容。在Linux下安装软件,一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。软件包和软件包管理器,就好比 “App” 和 “应用商店” 这样的关系。

2024-04-14 09:42:03 1068 9

原创 STL篇五:map和set

map和set的底层是红黑树,希望大家看完前一篇文章后再来看本章内容。set的文档介绍set是按照一定次序存储元素的容器在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。

2024-04-06 17:05:53 1148 3

原创 Linux:权限篇

Linux权限在两个地方有所体现,一种是使用用户:分为root超级用户员与普通用户。另一个是体现在文件的访问权限上,比如有的可读不可写等等。关于权限的内容,主要还是理解谁能干什么,不能干什么,并不涉及难以理解的知识,更多的还是需要继续熟悉Linux环境下的各个操作。如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习Linux,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!

2024-04-06 17:04:47 1384 10

原创 解决:使用git提交代码到github时,git push总是报错的问题

github在2021年8月13日的时候修改了认证方式,不能使用账户登录的方式去push代码等等操作,而是使用生成仓库的个人密钥去push代码等操作。所以如果使用的是gitee的话,通过账户密码登录的方式是可以正常提交的,而如果是使用GitHub的话,那么在最后一步的git push时是会报错的。这部分博主花费了半天时间才找到问题所在和解决方法,深感其中不易,因此记录下来来帮助有同样问题的小伙伴,希望本文能对大家有所帮助噢!!!

2024-04-02 16:18:47 1112 2

原创 Linux:入门篇

很多人对于Linux的学习总是感觉无法下手,不知道从何开始学习,相信这篇文章将会为你提供一个清晰的思路。Linux是命令行界面,很多小伙伴一上来可能会无从下手,因此不知道该如何使用,不知道什么样的行为会出现什么的结果。其实Linux的命令行模式与我们经常所使用的图形化界面并没有什么区别,一个是靠命令来进行一系列的操作,一个是靠鼠标点击图形来进行一系列的操作。在Linux下可以理解为一切皆文件,所有的操作都是对文件进行的。

2024-04-02 16:17:58 3521 6

原创 Linux:基本指令篇

对于学习Linux,指令是必不可少的,因为Linux是命令行界面,因此对于基本指令的学习是必不可少的。Linux的命令有许多,但是我们只需要熟悉常用的就可以了,在遇到不会的指令时可以上网搜索,而快速熟练指令的最快途径就是——实践!!!不要妄想着去背,只有通过不断的敲键盘才能真正的熟练掌握!!!

2024-04-02 16:16:45 1213 6

原创 数据结构篇十:红黑树

红黑树是解决单支树问题的另一种解决方法,它相比较AVL树减少了调整的次数,AVL是一格绝对平衡的树,而红黑树只要求最长路径不超过最短路径的二倍,相比较大大减少了调整次数。在实际中更多的也是使用红黑树,就比如后面的map和set,我们就是以红黑树进行封装的。RED,BLACK,_kv(kv),_col(RED){}思考:在节点的定义中,为什么要将节点的默认颜色给成红色的?

2024-03-02 15:51:30 1139 7

原创 数据结构篇九:AVL树

在二叉搜索树中我们发现这种情况下查询效率依旧很低下:如果插入的顺序有序,那么就会变成成单支树,二叉搜索树的性能就失去了,而AVL树和红黑树就是为了解决这个问题而发明的。本章主要讲解的是AVL树,下一篇文章将会讲解红黑树。int _bf;,_kv(kv),_bf(0){}AVL树我们采用的是三叉链,相比较二叉链多存储了父亲节点,它会更好的帮助我们进行调整节点的操作。AVL树最主要的是如何进行旋转,此部分比较难以理解,大家可以通过多画图来反复进行学习。希望大家都能有所收获。

2024-03-02 15:49:37 955 7

原创 数据结构篇八:二叉搜索树

前面我们已经学习过了二叉树,二叉搜索树是在二叉树的基础上增添了一些规则,使其能完成快速查找的功能,同时它也帮助我们更好的理解后续将要学习的map和set。此部分的学习主要是为了后续的AVL树和红黑树打基础,因此需要熟练理解,希望能与大家共同进步。如果大家发现有什么错误的地方,可以私信或者评论区指出喔。我会继续深入学习C++,希望能与大家共同进步,那么本期就到此结束,让我们下期再见!!!

2024-03-02 15:48:41 943 4

原创 C++多态

前面已经学习了有关继承的内容,接下来将会讲解C++最后的、也是较难的一个特性——多态。需要声明的,本节内容中的代码及解释都是在vs2019下的x86程序中,涉及的指针都是4bytes。如果要其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。

2024-02-28 17:13:27 904 9

原创 C++继承

C++相比较C增加了许多东西,最主要是针对类和对象部分,今天就让我们来进一步学习类和对象中更深层次的内容吧。继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。

2024-02-28 17:12:04 882 3

原创 C++模板进阶

前面我们只是简单的了解了什么是模板以及它的使用,本章内容我们将进一步学习有关模板的内容。一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。

2024-02-19 18:04:06 878 5

原创 STL篇四:stack和queue

栈和队列的实现相交于之前的内容简单很多,因为它的实现可以复用其他的容器。stack的文档介绍stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

2024-02-19 18:01:41 1065 1

原创 STL篇三:list

前面学习的string与vector都是线性结构,本节介绍的list是我们遇到的第一个链式结构,此部分的迭代器封装比较难以理解,希望大家都能学有所成,学有所获。list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。

2024-02-04 14:25:29 1022 10

原创 STL篇二:vector

。vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。

2024-02-04 14:22:59 1033 2

原创 STL篇一:string

可能很多人都不太清楚STL是什么,它是用来干什么的,大家在看完这篇文章之后相信能有个大概的了解,目前我只能说STL是C++的中十分重要的部分之一,是大家学习C++必须掌握的部分。

2024-01-13 19:55:52 1181 10

原创 C++模板初阶

我们会发现这会先的十分冗余,那么有没有什么方便的方式来实现这个功能呢?因此C++就引入了应对这种情况的方法 ------模板。

2024-01-13 19:51:57 953 5

原创 C/C++动态内存管理

在C语言中有动态内存管理,自然在C++中也有,我们也只知道C++是兼容C语言的。但是C++中新增了类和对象,继续采用之前的动态开辟函数能不能有效的运用在类和对象这一部分呢?让我们来看看吧!

2024-01-10 17:45:18 957 11

原创 C++类和对象(万字超详细讲解!!!)

C语言是面向过程进行编程,但是在现实生活中,都是一个一个的物体或对象来进行交互,因此C++就新加了面向对象进行编程,它更加符合现实生活中的场景。

2024-01-10 17:41:13 960 9

原创 C++入门基础(万字详解!!!)

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。

2023-08-15 11:56:51 39295 69

原创 数据结构篇七:排序

所谓排序,就是使一串记录按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。不同的排序算法各有优劣,本章内容讲介绍插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序以及计数排序八大排序算法。

2023-08-11 14:18:58 887 25

原创 数据结构篇六:二叉树

二叉树的内容是比较多的,并且对于递归有很强的要求性,手动画图这一途径对于初学者来说是一个很不错的方式。此文包括树的一些概念,二叉树的顺序结构以及链式结构的代码实现。

2023-05-19 15:48:40 1318 47

原创 数据结构篇五:队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 。出队列:进行删除操作的一端称为队头。

2023-05-08 23:04:34 792 30

原创 数据结构篇四:栈

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶

2023-05-02 11:07:08 958 20

原创 数据结构篇三:双向循环链表

;前面我们学习了单链表的实现,我们发现它在进行从后往前查找的时候有很大的不便,为了解决这个问题,双向链表油然而生。它可以很好的解决单链表无法从后往前查找的困难。

2023-05-01 21:33:23 1589 14

原创 C语言——文件操作

我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,这样根本没有实用性。我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。

2023-04-02 18:38:51 623 8

原创 自定义类型详解(结构体、枚举、联合体)

本期介绍的是c语言中的自定义类型,在平常做题时,但我们需要表示一个数据时,只需要定义一个变量表示就可以了,但是当我需要表示多个信息呢?比如需要记录多个学生的姓名、学号、性别以及年龄,难道我们要定义多个name1、name2…等等来记录吗?这看起来是不是很麻烦呢?所以本期介绍的结构体就是为了处理这种问题应运而生的,那就让我们来看看吧。

2023-03-21 22:13:04 487 11

原创 隐式类型转换

我们在编程中经常进行数值运算,那么你清楚它具体是怎么进行的吗?本期就来带大家深入了解一下计算机进行数值运算的方法。

2023-03-14 17:20:22 203 9

空空如也

空空如也

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

TA关注的人

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