- 博客(84)
- 资源 (6)
- 收藏
- 关注
原创 【Linux编程】二、Linux常见工具和项目开发(思维导图总结)
什么是软件包?1)在Linux下安装软件,一个通常的办法是下载程序的源代码,并进行编译,得到可执行程序。2)但是这样太麻烦了,于是有些人就把一些常用的软件提前编译好做成软件包(可以理解成Windows上的`.exe`安装程序)放在一个服务器上,通过包管理器我们就可以很方便的获取到这个编译好的软件包,从而直接进行软件的安装。3)软件包和软件包管理器之间的关系,就好比"App"和"应用商店"这样的关系。
2022-05-07 11:05:59
3921
61
原创 【Leetcode刷题笔记之数组篇】26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums,请你 原地删除重复出现的元素,使每个元素 只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有`k 个元素,那么nums的前 k 个元素应该保存最终结果。 将最终结果插入nums的前 k 个位置后返回 k。 不要使用额外的空间,你必须在 `原地`修改输入数组 并在使用
2022-04-15 16:21:02
2244
43
原创 【Linux编程】一、Linux常见指令和权限理解(思维导图总结)
初步接触Linux -- 黑框命令行的操作 --稍微不适 --坚持一段时间 --就会用的很爽(各种快捷键)为了便于学习和记忆,对命令进行分类(在总结的部分)命令的实用格式:命令名称 [操作选项] [操作对象](注意命令名称与操作选项之间以空格“ ”分割,操作选项和操作对象也是空格分割,用[]括起来是指该选项可能没有,或者不需要表示,例如:ls -al 用来查看当前路径下的文件详细信息 ,并不需要操作对象, pwd 查看当前所处路径,操作选项和操作对象均没有)
2022-04-10 16:12:02
26714
116
原创 【C++基础】三、类和对象(中篇)
如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。构造函数:在对象构造时调用的函数,这个函数完成初始化工作。构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次
2022-03-30 09:45:30
2802
25
原创 【C++基础】二、类和对象(上篇)(10000字掌握C++类核心内容)
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。以我们的生活中的点外卖为例:面向过程关注的是:如何一步步实现从选餐、订餐、送餐、取餐的各个功能模块面向对象关注的是:点餐用户及用户的操作(比如下单、评价等)、餐店店铺及相应操作(添加新菜品,删除菜品,设置价格等)、送餐人员(所在位置、路径规划、接单等)可以很清楚的感受到,一个关注于过程及其实现,一个关注于一个个对象及其操作。
2022-03-22 12:15:40
3072
24
原创 【C++基础】一、C++基础入门(20000字掌握C++基础知识)
在日常生活中,我们可能会经常碰到一个词表示多重含义,一句话可能也能表示多种含义,虽然写法都是一样的。这个时候,如果我们想要理解这些词和句子表示的真正含义,就需要结合上下文(也就是语境信息)来判断其真正的含义。这些词和句子就被重载了。有趣的小故事:自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是“谁也赢不了! ”(谁也/赢不了),后者是"谁也赢不了!”
2022-03-16 00:19:07
4274
18
原创 【Linux编程】三分钟让你学会Linux下用户密码更改
Linux环境下密码更改包括两种:第一种:root用户(管理员)密码更改第二种:非root用户(普通用户)密码更改可能需要进行密码更改的场景:①购买云服务后,原始的root密码过于复杂,不方便记忆和使用,需要进行root密码更改。②创建一个新的用户后,发现最初设置的密码不好管理,或者之前把这个账号分享给其他人,但是又想要收回账号 。③没啥事情,就是玩儿~一、root用户密码更改总思路:要进行root密码更改,必须在root用户下进行。步骤一:前期准备,登录root用户我们可以直
2022-02-25 17:30:00
10590
13
原创 【Linux编程】手把手教你搭建Linux编程环境
Linux编程环境搭建有两套方案。关于这两套方案我都会做详细的讲解,以便帮助大家减少Linux编程学习的障碍。方案一:云服务器 + Xshell这种方案就是将我们的Linux操作机部署在云服务器上面,然后通过Xshell在自己的电脑上操纵Linux机器。优点:Linux环境部署简单、后期维护成本低、可以随便瞎折腾、不用担心整崩了(推荐) 缺点....
2022-02-22 12:00:00
7507
18
原创 【Linux编程】6个问题带你弄懂Linux
Linux是一款`操作系统`,正如我们日常使用的windows,windows也是操作系统。那么操作系统又是什么呢?操作系统是用来管理计算机软硬件资源,向用户和应用程序提供方便的使用接口和系统调用的`系统软件`。其目的主要是①提高计算机资源的利用率②方便用户使用(典型的例子:windows的图形化用户界面)③管理应用程序软件,保证各个任务可以顺序推进和完成。
2022-02-19 09:00:00
1916
24
原创 【数据结构学习笔记】二、线性表之链表篇(3)(双向链表)
双向带头循环链表,也被叫做双链表。这种链表虽然结构比较复杂,(又是双向,又是带头,又是循环,看起来结构好像很复杂的样子)但是实际操作却非常简单。因此在我们的实际工作或项目中常使用的链表是这种。
2022-02-10 20:23:10
1523
12
原创 【Leetcode刷题笔记之链表篇】剑指 Offer 18. 删除链表的节点
给定单向链表的`头指针`和一个要删除的`节点的值`,定义一个`函数`删除该节点。 返回删除后的链表的`头节点`。
2022-01-28 21:55:56
2194
10
原创 【Leetcode刷题笔记之链表篇】142. 环形链表 II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 `next `指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数` pos` 来表示链表尾连接到链表中的位置(索引从` 0` 开始)。如果 pos 是` -1`,则在该链表中没有环。 注意:`pos `不作为参数进行传递,仅仅是为了标识链表的实际情况。`不允许修改` 链表。
2022-01-20 17:45:00
1216
1
原创 【Leetcode刷题笔记之链表篇】141. 环形链表
给你一个链表的头节点 `head` ,判断链表中`是否有环`。 如果链表中有某个节点,可以通过`连续跟踪` `next `指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数` pos `来表示链表尾连接到链表中的位置(索引从` 0` 开始)。如果` pos` 是` -1`,则在该链表中没有环。注意:`pos` 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 `true` 。 否则,返回 `false` 。
2022-01-18 18:00:00
983
8
原创 【Leetcode刷题笔记之链表篇】160. 相交链表
给你两个单链表的头节点 `headA` 和 `headB` ,请你找出并返回两个单链表`相交`的`起始节点`。如果两个链表`不存在`相交节点,返回 `null `。 图示两个链表在节点 c1 开始相交:理解相交:不是指A链表中有和B链表中val值相同的结点,而是指这个两个链表中存在相同的结点,如果我们通过指针去遍历A、B两个链表,能够在A、B中找到相同地址的结点,那A、B相交,否则就是不相交。
2022-01-16 17:30:00
974
12
原创 【Leetcode刷题笔记之链表篇】234. 回文链表
给你一个单链表的头节点 `head` ,请你判断该链表是否为`回文链表`。 如果`是`,返回 `true` ;否则,返回` false` 。具有对称性的链表就具有回文结构如果是单数个结点,中间的结点无需考虑,如果其他结点对称肯定是回文结构例如:1 2 3 1 2 也是回文结构这里借助求链表倒数第k个结点的思路。只要链表的.....
2022-01-15 17:45:00
1389
10
原创 【Leetcode刷题笔记之链表篇】21. 合并两个有序链表
将两个升序链表合并为一个新的 `升序` 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 我们可以将list2选为合并后待返回的链表,然后将list1中的结点合并到list2中.注意:在实际写代码的时候,我们会发现仅有一个`next`用来保存`cur1`的下一个结点是不够的。`cur2`的下一个结点的信息也需要保存(`假设`下一个结点`不为空`,若为空直接`cur1`结点插入`cur2`后即可),因为在比较的时候......
2022-01-14 17:30:00
1089
15
原创 【Leetcode刷题笔记之链表篇】面试题 02.04. 分割链表
总体而言,要想实现分割链表的目的有两种大的思路。一种是`不创建新的链表`,直接在`原链表`上面进行相应的操作。另一种是`创建一个新的链表`,将原来的链表`挪到`新链表中,同时达到想要的效果。
2022-01-13 17:45:00
894
12
原创 【Leetcode刷题笔记之链表篇】剑指 Offer 22. 链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有` 6 `个节点,从头节点开始,它们的值依次是 `1、2、3、4、5、6`。这个链表的倒数第 `3 `个节点是值为 `4` 的节点。`单链表`要求倒数第k个结点,由于结点之间关系的`单向性`,并不好直接求。但是如果我们将`倒数`转化为`顺数`,那么仅需要从头节点开始遍历链表便可轻松实现,具体过程看图解.....
2022-01-12 12:00:00
1074
19
原创 【Leetcode刷题笔记之链表篇】876. 链表的中间结点
给定一个头结点为 `head` 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。要得到中间结点,我们很容易想到的一种方法就是:先`遍历一遍链表`,求出`链表长度`,然后再从头开始,`走到中间结点`去,返回中间结点......
2022-01-10 18:00:00
1230
18
原创 【Leetcode刷题笔记之链表篇】206. 反转链表
要反转链表,一个很容易想到的方法就是:直接将链表结点之间的链接关系`反过来`。例如原来为`1->2`,反过来就是`1<-2`,也就是`2->1`。 除了使用这种迭代的方式之外,我们还可以使用头插法。将原来的链表`头插`到一个新的链表中,那么链表的方向就会反过来。除了以上两者方式外,还有一种递归实现的方法,递归版本稍微复杂一些,其关键在于反向工作。假设列表的其余部分已经被反转,现在我们应该如何反转它前面的部分?
2022-01-09 18:00:00
1459
18
原创 【Leetcode数据结构算法题】203. 移除链表元素(链表篇)
题目内容:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。leetcode题目链接(点击即可跳转)思路分析这是一个比较简单的单链表题目,属于单向不带头非循环链表。要注意这里的头节点不是带头结点的那种“头结点”。这里的头节点相当于链表的名字(巨坑)。虽然题目本身难度系数不大,但是如果不细心分析清楚,一看到题目就立马编程,那么调试的时候可能会耗费挺多时间的。实际上,对于链表相关的题目,不管难易程度如何
2022-01-08 20:00:00
439
7
原创 【数据结构学习笔记】二、线性表---链表篇(2)
文章目录链表概念:链表分类:单链表的实现:链表概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。注意:1.从上图可看出,链式结构在逻辑上是连续的,但是在物理上不一定连续2.现实中的结点一般都是从堆上申请出来的3.从堆上申请的空间,是按照一定的策略来分配的,两次申请的空间可能连续,也可能不连续链表分类:单向双向带头不带头循环非循环单向..
2022-01-07 22:10:13
1254
8
原创 【Leetcode数据结构算法题】数组形式的整数加法(顺序表篇)
题目内容:对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为[1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。leetcode题目链接(点击即可跳转):...
2022-01-05 22:33:47
544
11
原创 【Leetcode数据结构算法题】轮转数组(顺序表篇)
题目内容:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。leetcode题目链接(点击即可跳转)思路分析看完题目后,我们首先要做的就是理解题目的含义,也就是审题。从不同维度,不同角度的去设问题并主动回答这些问题。题目中出现了一个我们比较陌生的词语“轮转”,可能我们一下子无法理解这个词是啥子玩意儿。这个时候就可以借助题目中的示例来帮助理解。比如说示例1:用通俗的话来说就是,向右轮转1步,就是将最后一个元素放到第一个位置,其余元素位置向右移动一个位置。类似于所有元素向
2022-01-02 19:00:00
769
11
原创 【Leetcode数据结构算法题】合并两个有序数组(顺序表篇)
题目内容:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。leetcode题目链接(点击即可跳转
2022-01-01 18:00:00
1546
15
原创 【Leetcode数据结构算法题】删除有序数组中的重复项(顺序表篇)
题目内容:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。Leetcode题目链接(点击即可跳转)思路分析我们先假设没有“原地”删除重复项的这个要求,如果我们要解决“删除有序数组中的重复项”,能采取什么样的方法?(开动小脑袋瓜,想一想!)我们可以先创建一个临时数组,遍历原数组,将数组中的非重复元素放到临时数组中,最后将临时数组的内
2021-12-31 18:30:00
988
8
原创 【Leetcode数据结构算法题】原地移除元素(顺序表练习题)
题目内容:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。leetcode题目链接(点击即可跳转):思路分析①看完了题目,我们首先来理解一下题目的含义。这个题目其实就算是说,有一个数组,而且还是一个整型数组,数组里面有一堆数字。然后给你一个特定的数字,这个数字有可能在数组里面找不到,也
2021-12-30 23:01:03
1396
16
原创 【C++基础学习笔记】C++语法之引用
文章目录引用引用概念引用的使用方式:引用特性常引用使用场景传值、传引用效率比较引用和指针的区别引用引用概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。比如 : 李逵,在家称为"铁牛",江湖上人称"黑旋风""。再比如说:讲普法的罗翔老师经常谈到的张三,网友们送其外号“法外狂徒”,这也是起别名的方式。引用的使用方式:类型 & 引用变量名(对象名) = 引用实体;#include<iostr
2021-08-21 20:57:38
661
4
原创 【C++基础学习笔记】深入理解C++函数重载(非常重要!!!)
【高频面试题】1.下面两个函数能形成函数重载吗 ? 有问题吗或者什么情况下会出问题 ?void TestFunc(int a = 10){ cout << "void TestFunc (int) " << endl;}void TestFunc(int a){ cout << "void TestFunc(int) " << endl;}2.C语言中为什么不能支持函数重载 ?3.C++中函数重载底层是怎么处理的 ?4.C++中能否将
2021-08-18 18:35:06
670
5
原创 【C++基础学习笔记】C++的输入输出流及缺省参数
我要做一个好奇宝宝,带着疑问来阅读,哼~C++如何进行输入输出?和C语言何有区别?C++的缺省参数是什么?如何理解和掌握?文章目录C++的输入&输出缺省参数缺省参数的概念缺省参数的分类1.全缺省参数2.半缺省参数:C++的输入&输出婴儿降生到这个世界上时,会以自己独特的方式向这个崭新的世界打招呼。跟新生婴儿类似,C++语言刚出来后,也算是一个新事物,作为一门新的编程语言也会有自己问候这个美好世界的独特形式!#include<iostream>//input
2021-08-17 22:46:55
434
4
原创 【C++基础学习笔记】命名空间 namespace 的理解和使用
文章目录命名空间的概念命名空间的定义命名空间的正确使用方式命名空间的概念概念:在C /C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。简单来讲就是为了在名称相同时可以正常使用这些名称,才出现命名空间的。命名空间的定义定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接
2021-08-16 19:05:59
1341
4
原创 【Leetcode算法热题 --- 数组篇】丢失的数字
文章目录题目内容:题目理解:解题思路思路一:求和做差法思路二:异或找单法思路三:排序法思路四:哈希表法题目内容:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。(进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?)Leetcode题目链接(点击即可跳转):丢失的数字题目理解:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。假设
2021-08-11 22:33:35
898
5
原创 【Leetcode算法热题 --- 链表篇】链表中倒数第k个节点
文章目录题目内容:思路一:链表长度法思路二:双指针先行法题目内容:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。leetcode题目链接(点击即可跳转):链表中倒数第k个节点题目理解:这个题目要求我们找到倒数第k个节点,顺数的最后一个元素是倒数第1个节点(有的地方会把这里叫做倒数第0个,但是这
2021-08-08 20:05:31
1146
9
原创 【C语言基础学习笔记】+ 【C语言进阶学习笔记】总结篇(坚持才有收获!)
【C语言基础学习笔记系列】【C语言基础学习笔记】一、初始C语言(1)【C语言基础学习笔记】一、初始C语言(2)【C语言基础学习笔记】一、初始C语言(3)【C语言基础学习笔记】一、初始C语言(总结篇)【C语言基础学习笔记】二、分支与循环语句(1)【C语言基础学习笔记】二、分支与循环语句(2)【C语言基础学习笔记】二、分支与循环语句(3)【C语言基础学习笔记】三、函数(1)【C语言基础学习笔记】三、函数(2)— 函数递归详解【C语言基础学习—三子棋游戏】(包含详细讲解+优化策略及实现)【C
2021-08-03 15:07:54
7550
18
原创 【C语言进阶学习笔记】七、程序执行+调试技巧(实用技巧篇)
文章目录一、程序执行篇①预处理详解②宏定义③define标识符字符串④define宏名(参数表)字符串⑤宏和函数对比二、调试技巧篇①什么是bug?②调试是什么 ? 有多重要 ?③debug和release的介绍④windows环境调试介绍⑥如何写出好(易于调试)的代码?一、程序执行篇程序的翻译环境和执行环境在ANSIC的任何一种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。翻译环境1)组成一个程序的每
2021-08-03 15:05:15
1185
1
原创 【C语言进阶学习笔记】六、详解文件操作(看完这篇,你的文件操作就入门了!)
前言在之前的学习过程中,我们所编写的程序在执行过程中所产生的数据及结果都只是临时存放在内存区域,一旦程序运行结束,该程序所涉及的内存空间全部返回给操作系统。这时候如果我们想要去查看这些数据和结果,显然是做不到的!那有没有什么方法能够解决这个问题呢?也就是说可以将程序运行过程所产生的过程数据和结果数据都保存起来,即便程序结束,我们也可以找到这些内容,甚至是在之后所写的其他程序中也能继续使用这些内容。答案当然是-- - 有,这也就是我们这篇文章所要讨论的东西–文件。文章目录前言为什么需要文件?什么是文.
2021-07-29 09:52:15
1007
6
原创 【C语言进阶学习笔记】五、动态内存分配(爆肝吐血力作,强烈建议收藏!!!)
前言现代计算机基本都是基于冯诺伊曼结构体系设计出来的,冯诺伊曼结构体系的核心就是“存储程序”,将程序(指令集)和数据以同等地位存储在内存中。但是我们的内存空间并不是无限大的,所以为了高效的利用好内存空间,操作系统会对这些内存空间进行相应的分区,不同区域的内存有其对应的功能和使用方式。比如局部变量、函数形参通常是存储在栈区的,这部分内存空间的特点就是临时使用,用完即释放(当然这个都是由操作系统自动完成的,不需要程序员的干预);再比如全局变量通常存放在静态区,此外由static修饰的局部变量也会放到静态
2021-07-25 12:36:02
1269
9
原创 【数据结构学习笔记】一、数据结构介绍及算法分析(新手入门进阶指南)
文章目录一、数据结构和算法介绍1.什么是数据结构?2.什么是算法?3.数据结构和算法的重要性4.如何学好数据结构和算法5.数据结构和算法书籍及资料推荐6.经常遇到不会做的题目二、算法分析1、算法效率时间复杂度1.时间复杂度的概念:2.大O的渐进表示法空间复杂度1.空间复杂度的概念:2.大O渐进法表示法:数据结构学习的心理准备:一、数据结构和算法介绍1.什么是数据结构?数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。理解
2021-07-15 11:49:57
1134
10
原创 【C语言进阶学习笔记】四、自定义类型(2)(枚举+共用体)
文章目录枚举什么是枚举?如何定义枚举类型呢?枚举的优点枚举的使用联合联合类型的定义联合的特点联合大小的计算枚举什么是枚举?顾名思义,枚举就是一一列举。将可能的取值都一一列举出来就是枚举。比如说我们的现实生活中:①一周的可能取值,从周一到周日,总共7个可能取值②性别的取值,男,女,保密,总共3种可能取值(当然你也可以再添加一种取值可能,比如说未知,但是添加之后的可能取值仍然是可以一一列举出来的,总共4种可能了)③月份的可能取值,从一月到十二月,总共12个可能取值④颜色的可能取值,比如说红橙
2021-07-10 10:11:12
645
4
Linear algebra done right 3ed Edition
2018-04-11
Doing Math with Python 英文原版
2018-04-11
Deep Learning 深度学习英文版原版书籍
2018-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人