自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ipv4、ipv6、tcp、udp包结构以及字段解释

存在csdn上方便多端查看IPv4。

2024-03-24 15:53:39 1287

原创 leetcode127单词接龙刷题打卡

字典wordList中从单词beginWord和endWord的是一个按下述规格形成的序列siwordListbeginWordwordList给你两个单词beginWord和endWord和一个字典wordList,返回从beginWord到endWord的中的。如果不存在这样的转换序列,返回0。endWord。

2023-09-08 09:56:23 1058

原创 敲笨钟ptaC++

刷题

2023-09-03 15:13:08 587

原创 特立独行的幸福

幸福数

2023-08-30 14:13:32 432

原创 Docker学习

docker学习

2023-08-28 16:31:52 1667

原创 redis入门学习

redis

2023-06-08 16:24:57 831

原创 静态库与动态库的构建(含具体代码可以实操)

程序编译需要通过调用#define删除、展开宏、处理带的条件编译指令、条件语句中符合条件的会保留,不符合的会删除,插入include、删除注释、添加行号文件指示**作用:**将汇编文件生成二进制文件(可重定位目标文件)main.o。

2023-06-01 10:43:10 279

原创 五十行代码教你写一个简单的内存池(二级指针的应用)

自定义类型二级指针的应用假设有下列结构// 必须是第一个字段void *arg;} task_t;初始化二级指针操作// 等价于 a->next = NULL;a本来是一个task_t类型的指针,由于task_t有24个字节,也可以说a是指向24个字节的指针,由于a被转为了二级指针,意思就是现在a是一个指向8个字节的指针,该8个字节就对应task_t中前8个字节也就是next指针,与是解引用就是相当于解了next指针的引用。

2023-05-27 16:30:47 864 4

原创 线程池底层实现学习

如果没有使用线程池,我们就是自己用户层的开启线程,来一个开一个,完全没有管理的概念,加入了线程池后,由线程池来管理线程们。还有使用二级指针维护队列尾,使得队列的删除变得方便文章参考与的C/C++linux服务期高级架构系统教程学习。

2023-05-21 17:55:15 548

原创 深入理解计算机系统第七章知识点总结

强弱符号的概念函数和已初始化的全局变量是强符号未初始化的全局变量是弱符号处理多重定义的符号名规则一:不允许有多个同名的强符号规则二:如果有一个强符号与多个若符号同名,那么选择强符号规则三:如果有多个弱符号同名,那么从这些弱符号中任意选择一个对于这样一种情况:如果重复定义的符号是不同类型时,往往会破坏其他符号的内存void f();return 0;double x;在foo1中x和y的地址是连续的,被定义被。

2023-05-21 17:44:21 1007

原创 教你使用io_uring来写一个并发回声服务器

io_uring

2023-05-17 13:36:05 511 2

原创 ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist

mysql> show databases;ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

2023-05-08 15:42:43 779

原创 fastdfs简单介绍

fastdfs简单介绍

2023-05-06 18:54:35 852

原创 主机无法访问远程mysql服务

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.56.105:3306' (10060)

2023-05-06 01:44:38 167

原创 如何使用hook?

hook按照以下步骤,就可以自定义其他的hook

2023-05-05 13:06:44 519

原创 剑指offer12矩阵中的路径刷题打卡

回溯+深度优先遍历简单易懂做法

2023-04-19 11:27:21 152

原创 网络中的阻塞与非阻塞以及reactor模型

通过修改是阻塞还是非阻塞,之后所有使用这个的系统调用都会表现为非阻塞数据在未就绪的处理阻塞调用流程:先去检测内核缓冲区有无数据,如果没有数据则阻塞等待,当客户端给我们发送数据了,然后我们的网卡驱动往里面内核缓冲区填充数据,然后阻塞的系统调用才会把阻塞去掉,然后就拷贝,然后系统调用就返回阻塞调用流程:先去检测内核缓冲区是否可以写数据(是否是满的),如果是满的,则就阻塞,一直等到网络协议栈把内核缓冲区数据发送出去了之后他有剩余空间了才会停止阻塞,将数据写进内核缓冲区,返回实际写入内核空间的字节数**阻塞调用流程

2023-04-17 07:47:20 901

原创 深入理解计算机系统第九章知识点总结

无论哪种情况,一旦一个虚拟页面被初始化了,它就在一个由内核维护的专门的交换文件(也叫交换空间)之间换来换去。他将两个进程中的每个页面都标记为只读。时存在的虚拟内存相同,当两个进程的任意一个后来进行写操作时就会触发写时复制机制创建新页面。通过将一个虚拟内存区域与一个磁盘上的对象关联起来,来初始化这个虚拟内存区域的内容。当fork被调用时,内核为新进程创建各种数据结构,并且为,他分配一个唯一的。交换空间的大小限制着当前运行着的进程能够分配的虚拟页面的综述。删除当前进程虚拟地址的用户部分中的已存在的区域结构。

2023-04-12 20:55:10 1971

原创 io与select介绍

IO:指既能收数据也能发数据。Linux下socketfd(文件描述符)就是一种IO。

2023-04-12 00:51:37 844

原创 DPDK入门(环境搭建以及小demo)

dpdk

2023-04-11 16:39:39 2495 1

原创 网络数据接收过程经历了什么

应用层就接收到了…网卡数据拷贝到,组织出调用将数据从内核态拷贝到用户态

2023-04-10 16:50:11 423

原创 远程访问mysql失败

的服务失败,在确定了其防火墙是关闭的情况,可以考虑是其配置文件的。,监听所有可用的网络接口,这样也许就能解决无法访问远程。只允许其本机访问,所以可以将其设置为。

2023-04-02 17:00:35 106

原创 三次握手与四次挥手在具体函数上的体现

socket文件系统分配fd,且分配一个tcbbind绑定本地的ip、端口listen将fd置为listen状态accept从全连接队列中取出一个tcb并分配一个fdrecv在对应的fd里面,将对应的readbuffer读出来send在fd对应的tcb里面将数据拷贝到sendbuffer里面close将sendbuffer里面的最后一个包的fin位置为1回收fd。

2023-04-02 14:27:42 196

原创 leetcode647回文子串刷题打卡

给你一个字符串 ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:示例 2:提示:动归五步:数组以及下标含义确定递推公式初始化遍历顺序 为保证都是被用到过的 所以遍历要从下到上 从左到右由于只会遍历上三角,则j的索引从开始

2022-12-03 14:00:44 254

原创 leetcode309最佳买卖股票时机含冷冻期刷题打卡

设计一个算法计算出最大利润。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。的区别,该题有一个冷却期,就是卖出彩票后要等一天才能买彩票,所以第二个方向是。与2的区别就在于多了一个冷却时间的条件,代码区别就在于递推公式。:就是照着前一天的不持有彩票来办,或者是卖出当天的彩票来办。:有两个方向,一个是照着前一天持有彩票来办,另一个就是与。不持有股票的所得现金 减去 今天的股票价格。代表持有股票获得的最大价值,代表不持有股票获得的最大价值。

2022-11-27 19:09:55 305

原创 leetcode337打家劫舍3刷题打卡

一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。动态规划其实就是使用状态转移容器来记录状态的变化,这里使用一个长度为2的数组,记录当前结点偷与不投所得到的的最大金钱。小偷又发现了一个新的可行窃的地区。这道题是在树上进行状态转移,涉及到递归,则可以结合递归三步与动归五步。明确的,使用后续遍历,因为通过递归函数的返回值来做下一步计算。通过递归左节点,得到左节点偷与不偷的金钱。通过递归右节点,得到左节点偷与不偷的金钱。抢了该节点则不能抢该节点的孩子节点。使用带备忘录的递归,用。

2022-11-25 21:37:38 632

原创 leetcode139单词拆分刷题打卡

给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。

2022-11-24 02:31:57 365

原创 leetcode279完全平方数刷题打卡

给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。

2022-11-22 16:03:50 355

原创 leetcode322零钱兑换刷题打卡

如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;动归、完全背包(相同硬币可以取多次)你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。不是求方法个数的基本都是这样的。

2022-11-22 14:42:51 172

原创 leetcode377组合总数4刷题打卡

给你一个由整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合 32 位整数范围。:动归、完全背包targetnums[i]nums[i]本题题解是不同解,所以遍历顺序要改变,先遍历背包,再遍历物品dp[j]:装满j大小的背包有多少种方法由于是压缩一维dp且是求装入背包的总方法所以初始化dp[0] = 1求装入背包方法基本都是如下形式。

2022-11-22 14:39:30 214

原创 leetcode322零钱兑换刷题打卡

如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;动归、完全背包(相同硬币可以取多次)你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。不是求方法个数的基本都是这样的。

2022-11-22 14:38:03 219

原创 leetcode416分割等和子集刷题打卡

相比,其遍历容量的时候是倒叙遍历的,这是为了保证保证物品i只被放入一次!这道题目是要找是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。中选择一件物品放入背包容量为0的背包中获得的最大价值,此处背包容量为。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。给出背包问题,大家都知道,有N件物品和一个最多能背重量为。的子集总和,就算是可以分割成两个相同元素和子集了。是本行的,而不是上一行的,所以用逆序,逆序用到的。

2022-11-08 20:06:29 316

原创 leetcode746使用最小花费爬楼梯刷题打卡

个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。层可以由前面两层分别加上其花费的最小值来决定。请你计算并返回达到楼梯顶部的最低花费。由于每层可以选择跳一层还是两层,所以第。

2022-11-05 15:40:11 146

原创 Linux有名管道学习——实现两个进程的简单聊天

为了克服匿名管道只能用于亲缘关系的进程间通信缺点,提出了有名管道(FIFO),也叫命名管道、FIFO文件一旦打开了FIFO,就能在它上面使用与操作匿名管道和其他文件的系统调用一样的I/O系统调用了(如read()、write()和close())。与管道一样,FIFO也有一个写入端和读取端,并且从管道中读取数据的顺序与写入的顺序是一样的。FIFO的名称也由此而来:先入先出。通过命令创建有名管道mkfifo 名字通过函数创建有名管道关于mkfifo函数pathnamemode0-1openreadread。

2022-10-28 00:03:11 1342 1

原创 leetcode401二进制手表刷题打卡

表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。串,而且分钟需要格式化输出,不足两位的前面要补零,我用的方法是使用头文件。这就是本题被扒光的情景,接下来就是根据题意一点一点的加限制条件。个数字,不能重复,就这么简单直接就可以用回溯枚举,伪代码如下。每个 LED 代表一个 0 或 1,最低位在右侧。这道题被扒光了构造回溯抽象树太简单了,就不画了。这十个数就是上图二进制手表上的数字,用一个。,底部的 6 个 LED 代表。首先抛开字符串,抽象题目,从。的时候就可以开始处理返回了。

2022-10-24 23:32:24 103

原创 leetcode51N皇后刷题打卡

row参数在每次递归的时候都 + 1,使其进入下一层的选择,以往的题都是一维的,用startindex来控制后移节点,对应代码如下。这个棋盘是一个二维矩阵,对于二维矩阵的回溯,外层for循环用于选择某行中的某一列,内部递归用于选择下一行中的某一列,假设输入样例为。的地方开始,且每一行只会选择一个位置,因此不必判断同一行上是否有节点,而且也只用考虑上半区对应位置是否有。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。循环中的筛选条件,筛选规则是该点的十字路径和左。

2022-10-24 12:56:03 85

原创 回溯方法总结

循环内部没有任何筛选条件,所有回溯的题目都是在此基础上加条件进行节点的删除,全排列这道题就是加了。循环中嵌套递归,这就是回溯的基本格式,最重要的就是将其抽象为一颗树,固定一个根节点,就拿。数组,回溯操作就是在其中取值加入另一设好的path集合,将其作为节点,令节点的内容就是。循环的话就发现他遍历了树的宽度,我们可以猜测,递归则就是遍历数的深度,接下来我将。参数是拿来干什么的呢,其实也是删除一些节点,他就是令每个父节点下遍历子节点时。数组,目的在于去除同一路径下的相同位置的节点,删除的节点如下图所示。

2022-10-23 13:51:32 316

原创 leetcode332重新安排行程刷题打卡

对目的地进行排序,这样就自然的对答案进行按字典排序自然的就是最小,并增加一个引用计数,为。为起始地选择目的地,由于使用的map来保存目的地,所以会以字典序从小到大自动排序,外层。假定所有机票至少存在一种合理的行程。的二维数组,其中每个元素都是一个存放string的数组,所以以这种形式的增强。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。数组中的元素个数,在终止条件中会有用的,每次进入回溯会对。已经自动排序,所以第一个返回的题解一定是最小字典序的。,无需有判断答案是最小字典序,根据前面的说法,

2022-10-23 13:44:27 656

原创 leetcode每日一题刷题打卡1700

然后因为取三明治只能从栈顶,然后遍历三明治,对于栈头元素,result[i] == 0 的话则可以直接返回,因为没人需要的三明治会一直在头那儿卡着,即使下面有其他学生喜欢的也不管。但是这个思路是对的,或者说我不知道后续怎么办,不知道如何结束这个循环,最终提交就是超时。的数组,题目中刚好有0和1,直接按照索引统计0和1,首先遍历学生数组,为数组增加元素。匹配则学生指针++,三明治指针++,且设置学生值为2,用于标记吃过的学生。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。不匹配则学生指针++

2022-10-20 12:50:21 354

原创 leetcode47全排列2刷题打卡

给定一个可包含重复数字的序列nums,返回所有不重复的全排列。本题相较于全排列1多了序列里面可以包含重复数字的条件,这样一来全排列的解就会包含重复的解,就要求我们针对这个重复设计方法,findcontinue[1,1,2]booltrue参照,使用局部集合来去掉同一层上的重复结点。确定参数和返回值used确定终止条件全排列每个解的大小一定等于nums数组的大小,所以返回条件是只要path大小等于了nums,无需写确定本层逻辑。

2022-10-18 11:06:05 299

空空如也

空空如也

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

TA关注的人

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