自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法专题(Part2)

8. 用最少数量的箭引爆气球。4. 可被三整除的最大和。5. 单调递增的数字。

2025-05-10 21:31:34 447

原创 贪心算法专题(Part1)

贪心算法

2025-05-10 21:31:16 458

原创 优选算法——前缀和

这里需要强调一点,大家不要去死记硬背前缀和的模板,而是要去理解这种思想;比如本题,其实是前缀积,但是本质上和前缀和的思想是一样的。这里的思想类似于动态规划,我们需要定义出两个状态表示。与上题很类似,但是需要一些补充知识;2. 除自身以外数组的乘积。3. 和为k的子数组。1. 数组的中心下标。

2025-05-10 21:29:42 528

原创 优选算法——队列+BFS

在正常的层序遍历过程中,我们是可以把⼀层的结点放在⼀个数组中去的。既然我们有这个数组,在合适的层数逆序就可以得到锯齿形层序遍历的结果。层序遍历即可~仅需多加⼀个变量,用来记录每⼀层结点的个数就好了。2. 二叉树的锯齿层序遍历。4. 在每个树行中找最大值。3. 二叉树最大宽度。

2025-05-10 21:29:38 440

原创 Linux——多线程

Linux——线程精析

2025-05-09 12:45:25 1212

原创 Linux——进程信号

Linux——进程信号精析

2025-05-09 12:45:23 619

原创 Linux——进程间通信

而此时子进程代码都还没跑完就被终止了,属于异常退出,那么子进程必然收到了某种信号。这里大家发现,管道文件的大小为0,尽管服务端不读取管道当中的数据,但是管道当中的数据并没有被刷新到磁盘,也就说明了双方进程之间的通信依旧是在内存当中进行的,和匿名管道通信是一样的,这也就与我们前面的结论逻辑自洽了。进程间通信的本质就是,让不同的进程看到同一份资源,使用匿名管道实现父子进程间通信的原理就是,让两个父子进程先看到同一份被打开的文件资源,然后父子进程就可以对该文件进行写入或是读取操作,进而实现父子进程间通信。

2025-04-26 19:08:27 1255 1

原创 Linux——动静态库

并且,可执行程序将其入口地址填充到CPU的EIP寄存器中,这样一来CPU就知道了可执行程序从哪里开始执行,然后通过MMU,再加上页表,找到对应程序语句的物理地址,执行语句,如果语句中还在调用其他地方的语句,那么CPU会得到相应的虚拟地址,然后继续查页表,去找到对应物理地址,所以总结来说,进入CPU的都是虚拟地址,出来的都是物理地址。合并了后,空间利⽤率就⾼了,否则,很小的⼀段,未来物理内存也浪费太⼤(物理内存页分配⼀般都是整数倍⼀块给 你,比如4k),所以,链接器趁着链接就把小块们都合并了。

2025-04-26 19:08:12 3551 2

原创 优选算法——优先级队列

• 并且将粉碎后的⽯头放⼊⽯堆中之后,也能快速找到下⼀轮粉碎的最⼤⽯头和次⼤⽯头;这里大家要注意一个点,定义堆的时候要定义成全局的,这样类内两个函数都可以找到。• 每次从⽯堆中拿出最⼤的元素以及次⼤的元素,然后将它们粉碎;• 如何顺利的拿出最⼤的⽯头以及次⼤的⽯头;1. 最后一块石头的重量。2. 数据流中第K大元素。3. 前K个高频单词。4. 数据流的中位数。

2025-04-17 19:10:25 396

原创 数据结构——栈和队列

栈和队列初阶

2025-04-14 21:23:06 374

原创 Linux基础IO与文件系统

Linux基础IO精析

2025-04-14 17:32:23 1043

原创 Linux——进程控制

Linux进程控制精析

2025-04-14 17:31:49 975

原创 Linux——进程概念

进程概念精析

2025-04-09 18:28:34 2930 1

原创 动态规划——两个数组的dp问题

这里说明一下,在做字符串类型的dp问题时,我们可以在原字符串的前面加上一个字符,这样下标的关系就不需要去调整了。这里大家需要注意我们的预处理,前面加一个空串可以帮我们解决下标映射的问题。本题和上一题解法一样,可以转化为上一道题。7. 两个字符串的最小ASCII删除和。5. 正则表达式匹配。8. 最长重复子数组。1. 最长公共子序列。

2025-04-09 18:28:23 378

原创 Linux——冯 • 诺依曼体系结构&操作系统初识

当学生的数量多起来了,校长就可以将全部学生的信息组织起来,当然组织的方式有很多种(链表、顺序表、树),而每种组织方式都有其自己的优势,于是就有了一门课程专门教我们管理数据的方式,那就是数据结构。与此同时,键盘将信息加载到内存后,CPU要获取内存中的信息并进行处理,处理完后写回内存,此时你的电脑网卡就回从内存中获取相应的信息,再通过网络传输到对方的电脑。,在你向朋友发送消息这个过程中,你的电脑当中的键盘充当输入设备、显示器和网卡充当输出设备,你朋友的电脑当中的网卡充当输入设备、显示器充当输出设备。

2025-04-01 18:02:04 3583 1

原创 动态规划——回文串问题

这道题看起来比较困难,实际上并不难,我们利用前面动态规划的思想可以瞬间降这道题变得简单。说明:填表顺序那里笔误,应该是从下往上填每一行。6. 让字符串成为回文串的最小插入次数。5. 最长回文子序列。4. 分割回文串II。

2025-04-01 18:01:46 288 1

原创 Linux——Shell运行原理以及Linux权限

大家发现,我们对dir目录来说是other,我们拥有对其写的权限,那么我在dir目录下创建一个新文件test7.txt,此时大家注意这个文件没有写权限,但是我们还是能将它删除,所以这个现象就比较奇怪了,我不能“写”这个文件,但是却可以直接删除它,为了解决这个不合理的问题,Linux引入了。只要用户拥有某目录的可写权限,就可以删除该目录当中的文件,而不论该用户是否拥有该文件的可写权限,这显然是不合理的。2)在Linux当中,所有用户都要隶属于某一个组,哪怕这个组只有你一个人(此时该组就以你的用户名为组名)。

2025-03-12 19:14:04 6086 7

原创 动态规划——子数组系列

这里来总结一下关于初始化我们学到的三个方法,首先最常用的就是添加虚拟节点的方法,使用这个方法大家知道注意两个注意事项,前面的题目分析里有,这里不做赘述;这道题初始化和前面的题目是有所不同的,这里我们根据题目要求可以发现,最差的情况也是1,所以我们直接将f表和g表中的值初始化为1,这样做可以为我们省去一些麻烦。这里需要解释一下,在分析返回值的时候,我们有一种情况是数组中的值都为负数,此时我们不能返回0,0表示啥都不选,题目要求非空子数组。4. 乘积为正数的最长子数组。2. 环形子数组的最大和。

2025-03-12 19:13:57 603 1

原创 动态规划——简单多状态dp问题

动态规划dp问题

2025-03-09 19:47:13 821 3

原创 stack&&queue

栈与队列

2025-03-09 19:46:42 1132 3

原创 动态规划——路径问题

4. 下降路径最小和。3. 珠宝的最高价值。

2025-02-24 17:16:22 304 2

原创 优选算法——栈

关于栈的相关算法题

2025-02-24 17:15:58 841

原创 递归专题(Part2)

二叉树中的递归

2025-02-03 13:07:48 918 1

原创 递归专题(Part1)

递归I

2025-02-03 13:07:30 847 1

原创 C++——set&multiset&map&&multimap

set&map系列

2025-01-23 21:21:15 825

原创 优选算法——哈希表

大家来看上面的图,我们需要创建一个哈希表来存储数组下标以及对应位置的值,然后直接在哈希 表中查找每⼀个元素的target - nums[i] ,就能快速的找到「目标和的下标」。其实思路不难,我们只需要创建一个哈希表,把其中一个字符串放进去,对应位置++,然后再遍历另一个字符串,对应位置--,对应位置的值如果刚好都减为0,说明可以重排;我们创建这样的键值对,key为按照ASCII码值排好序的字符串,vaule为对应异位词,将它们放到哈希表中,最后我们需要将哈希表中的vaule提取出来就得到了我们想要的结果。

2025-01-23 21:20:55 1072

原创 C++——继承

继承⼀定程度破坏了基类的封装,基类的改变,对派⽣类有很⼤的影响。多继承:⼀个派⽣类有两个或以上直接基类时称这个继承关系为多继承,多继承对象在内存中的模型 是,先继承的基类在前⾯,后⾯继承的基类在后⾯,派⽣类成员在放到最后⾯。

2025-01-05 17:02:50 968 1

原创 C++——多态

2. 多态的定义及其实现前言前面我们介绍了继承的相关内容,今天我们来介绍多态,这也是C++中一个非常重要的概念。在笔试和面试中经常会考到,所以大家如果对C++感兴趣,请继续阅读本篇内容,下面进入正文部分。1. 多态的概念多态(polymorphism)的概念:通俗来说,就是多种形态。多态分为(静态多态)和(动态多态),这⾥我们重点讲运行时多态,编译时多态(静态多态)主要就是我们前⾯讲的。

2025-01-05 17:01:48 1176 1

原创 优选算法——分治(归并)

分治——归并

2024-12-17 23:05:28 537

原创 优选算法——链表

链表进阶

2024-12-17 23:05:07 460 1

原创 优选算法——分治(快排)

优选算法——分治

2024-12-12 21:17:09 663 1

原创 优选算法——位运算

位运算

2024-12-12 21:16:59 442 2

原创 vector的模拟实现

如果此时我们使用的是memcpy函数进行拷贝构造的话,那么拷贝构造出来的vector当中存储的每个string的成员变量的值,将与被拷贝的vector当中存储的每个string的成员变量的值相同,即两个vector当中的每个对应的string成员都指向同一个字符串空间。对容器进行析构时,首先判断该容器是否为空容器,若为空容器,则无需进行析构操作,若不为空,则先释放容器存储数据的空间,然后将容器的各个成员变量设置为空指针即可。

2024-12-07 17:21:02 1220 1

原创 优选算法——二分查找

二分算法

2024-12-07 17:20:48 1272 1

原创 C++——类和对象(Part3)

C++——类和对象第三部分

2024-11-26 22:06:10 1026 3

原创 STL——string类的模拟实现

前言前言前面为大家介绍了string类的使用,本篇博客我们自己来实现一下string类,这里说明一下,我们只实现一些核心的接口,目的是让大家了解string的底层,加深对string类的理解和掌握,下面进入正文部分。1. 默认成员函数1.1 构造函数构造函数设置为缺省参数,若不传入参数,则默认构造为空字符串。字符串的初始大小和容量均设置为传入的长度(不包括’\0’)这里大家在开空间的时候需要多开一个,因为capacity是不包括\0的,所以我们需要为\0多开一个空间。1.2 拷贝构造函数。

2024-11-26 22:06:06 1162 1

原创 C++——类和对象(part2)

像Stack这样的类,虽然也都是内置类型,但是_a指向了资源,编译器⾃动生成的赋值运算符重载完成的值拷贝/浅拷贝不符合我 们的需求,所以需要我们⾃⼰实现深拷贝(对指向的资源也进行拷贝)。6. 传值返回会产⽣⼀个临时对象调用拷贝构造,传值引用返回,返回的是返回对象的别名(引⽤),没有产⽣拷贝。

2024-11-17 22:12:42 908 1

原创 优选算法——双指针

双指针算法

2024-11-17 22:12:39 885 3

原创 STL——list的介绍和使用

前言前言本篇博客我们继续来介绍STL的内容,这次我们要介绍的是list这个容器,可以简单地理解为顺序表,当然和我们之前学过顺序表还是有区别的,具体内容大家可以继续往下阅读,下面进入正文。1. list简介1.list是一种可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2.list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立结点当中,在结点中通过指针指向其前一个元素和后一个元素。

2024-10-30 22:50:58 1090 2

原创 STL——vector的介绍和使用

本篇博客为大家介绍vector的内容,之前我们说过的string,vector也是一种容器,学习的模式可以类比string,包括后面要学习的其他容器,它们都有相似之处,也同样都比较重要,是STL的核心内容,所以大家需要重点理解并掌握这里的内容,OK,下面进入正文部分。在该代码中,我们本意是使用元素2的迭代器在原序列中2的位置插入一个10,然后将2删除,但我们实际上获取的是指向2的指针,当我们在2的位置插入10后,该指针就指向了10,所以我们之后删除的实际上是10,而不是2。这里与string是类似的。

2024-10-30 22:50:43 1184 3

空空如也

空空如也

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

TA关注的人

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