笔记
文章平均质量分 51
水番茄
这个作者很懒,什么都没留下…
展开
-
静态库与动态库的构建(含具体代码可以实操)
程序编译需要通过调用#define删除、展开宏、处理带的条件编译指令、条件语句中符合条件的会保留,不符合的会删除,插入include、删除注释、添加行号文件指示**作用:**将汇编文件生成二进制文件(可重定位目标文件)main.o。原创 2023-06-01 10:43:10 · 291 阅读 · 0 评论 -
五十行代码教你写一个简单的内存池(二级指针的应用)
自定义类型二级指针的应用假设有下列结构// 必须是第一个字段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 · 876 阅读 · 4 评论 -
线程池底层实现学习
如果没有使用线程池,我们就是自己用户层的开启线程,来一个开一个,完全没有管理的概念,加入了线程池后,由线程池来管理线程们。还有使用二级指针维护队列尾,使得队列的删除变得方便文章参考与的C/C++linux服务期高级架构系统教程学习。原创 2023-05-21 17:55:15 · 559 阅读 · 0 评论 -
深入理解计算机系统第七章知识点总结
强弱符号的概念函数和已初始化的全局变量是强符号未初始化的全局变量是弱符号处理多重定义的符号名规则一:不允许有多个同名的强符号规则二:如果有一个强符号与多个若符号同名,那么选择强符号规则三:如果有多个弱符号同名,那么从这些弱符号中任意选择一个对于这样一种情况:如果重复定义的符号是不同类型时,往往会破坏其他符号的内存void f();return 0;double x;在foo1中x和y的地址是连续的,被定义被。原创 2023-05-21 17:44:21 · 1021 阅读 · 0 评论 -
教你使用io_uring来写一个并发回声服务器
io_uring原创 2023-05-17 13:36:05 · 552 阅读 · 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 · 832 阅读 · 0 评论 -
fastdfs简单介绍
fastdfs简单介绍原创 2023-05-06 18:54:35 · 866 阅读 · 0 评论 -
主机无法访问远程mysql服务
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.56.105:3306' (10060)原创 2023-05-06 01:44:38 · 181 阅读 · 0 评论 -
如何使用hook?
hook按照以下步骤,就可以自定义其他的hook原创 2023-05-05 13:06:44 · 534 阅读 · 0 评论 -
leetcode647回文子串刷题打卡
给你一个字符串 ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:示例 2:提示:动归五步:数组以及下标含义确定递推公式初始化遍历顺序 为保证都是被用到过的 所以遍历要从下到上 从左到右由于只会遍历上三角,则j的索引从开始原创 2022-12-03 14:00:44 · 268 阅读 · 0 评论 -
leetcode309最佳买卖股票时机含冷冻期刷题打卡
设计一个算法计算出最大利润。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。的区别,该题有一个冷却期,就是卖出彩票后要等一天才能买彩票,所以第二个方向是。与2的区别就在于多了一个冷却时间的条件,代码区别就在于递推公式。:就是照着前一天的不持有彩票来办,或者是卖出当天的彩票来办。:有两个方向,一个是照着前一天持有彩票来办,另一个就是与。不持有股票的所得现金 减去 今天的股票价格。代表持有股票获得的最大价值,代表不持有股票获得的最大价值。原创 2022-11-27 19:09:55 · 315 阅读 · 0 评论 -
leetcode337打家劫舍3刷题打卡
一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。动态规划其实就是使用状态转移容器来记录状态的变化,这里使用一个长度为2的数组,记录当前结点偷与不投所得到的的最大金钱。小偷又发现了一个新的可行窃的地区。这道题是在树上进行状态转移,涉及到递归,则可以结合递归三步与动归五步。明确的,使用后续遍历,因为通过递归函数的返回值来做下一步计算。通过递归左节点,得到左节点偷与不偷的金钱。通过递归右节点,得到左节点偷与不偷的金钱。抢了该节点则不能抢该节点的孩子节点。使用带备忘录的递归,用。原创 2022-11-25 21:37:38 · 663 阅读 · 0 评论 -
leetcode139单词拆分刷题打卡
给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。原创 2022-11-24 02:31:57 · 375 阅读 · 0 评论 -
leetcode279完全平方数刷题打卡
给你一个整数n,返回和为n的完全平方数的最少数量。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。原创 2022-11-22 16:03:50 · 372 阅读 · 0 评论 -
leetcode322零钱兑换刷题打卡
如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;动归、完全背包(相同硬币可以取多次)你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。不是求方法个数的基本都是这样的。原创 2022-11-22 14:42:51 · 200 阅读 · 0 评论 -
leetcode377组合总数4刷题打卡
给你一个由整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合 32 位整数范围。:动归、完全背包targetnums[i]nums[i]本题题解是不同解,所以遍历顺序要改变,先遍历背包,再遍历物品dp[j]:装满j大小的背包有多少种方法由于是压缩一维dp且是求装入背包的总方法所以初始化dp[0] = 1求装入背包方法基本都是如下形式。原创 2022-11-22 14:39:30 · 225 阅读 · 0 评论 -
leetcode322零钱兑换刷题打卡
如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;动归、完全背包(相同硬币可以取多次)你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。不是求方法个数的基本都是这样的。原创 2022-11-22 14:38:03 · 242 阅读 · 0 评论 -
leetcode416分割等和子集刷题打卡
相比,其遍历容量的时候是倒叙遍历的,这是为了保证保证物品i只被放入一次!这道题目是要找是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。中选择一件物品放入背包容量为0的背包中获得的最大价值,此处背包容量为。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。给出背包问题,大家都知道,有N件物品和一个最多能背重量为。的子集总和,就算是可以分割成两个相同元素和子集了。是本行的,而不是上一行的,所以用逆序,逆序用到的。原创 2022-11-08 20:06:29 · 326 阅读 · 0 评论 -
leetcode746使用最小花费爬楼梯刷题打卡
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。层可以由前面两层分别加上其花费的最小值来决定。请你计算并返回达到楼梯顶部的最低花费。由于每层可以选择跳一层还是两层,所以第。原创 2022-11-05 15:40:11 · 172 阅读 · 0 评论 -
Linux有名管道学习——实现两个进程的简单聊天
为了克服匿名管道只能用于亲缘关系的进程间通信缺点,提出了有名管道(FIFO),也叫命名管道、FIFO文件一旦打开了FIFO,就能在它上面使用与操作匿名管道和其他文件的系统调用一样的I/O系统调用了(如read()、write()和close())。与管道一样,FIFO也有一个写入端和读取端,并且从管道中读取数据的顺序与写入的顺序是一样的。FIFO的名称也由此而来:先入先出。通过命令创建有名管道mkfifo 名字通过函数创建有名管道关于mkfifo函数pathnamemode0-1openreadread。原创 2022-10-28 00:03:11 · 1376 阅读 · 1 评论 -
leetcode401二进制手表刷题打卡
表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。串,而且分钟需要格式化输出,不足两位的前面要补零,我用的方法是使用头文件。这就是本题被扒光的情景,接下来就是根据题意一点一点的加限制条件。个数字,不能重复,就这么简单直接就可以用回溯枚举,伪代码如下。每个 LED 代表一个 0 或 1,最低位在右侧。这道题被扒光了构造回溯抽象树太简单了,就不画了。这十个数就是上图二进制手表上的数字,用一个。,底部的 6 个 LED 代表。首先抛开字符串,抽象题目,从。的时候就可以开始处理返回了。原创 2022-10-24 23:32:24 · 112 阅读 · 0 评论 -
leetcode51N皇后刷题打卡
row参数在每次递归的时候都 + 1,使其进入下一层的选择,以往的题都是一维的,用startindex来控制后移节点,对应代码如下。这个棋盘是一个二维矩阵,对于二维矩阵的回溯,外层for循环用于选择某行中的某一列,内部递归用于选择下一行中的某一列,假设输入样例为。的地方开始,且每一行只会选择一个位置,因此不必判断同一行上是否有节点,而且也只用考虑上半区对应位置是否有。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。循环中的筛选条件,筛选规则是该点的十字路径和左。原创 2022-10-24 12:56:03 · 95 阅读 · 0 评论 -
回溯方法总结
循环内部没有任何筛选条件,所有回溯的题目都是在此基础上加条件进行节点的删除,全排列这道题就是加了。循环中嵌套递归,这就是回溯的基本格式,最重要的就是将其抽象为一颗树,固定一个根节点,就拿。数组,回溯操作就是在其中取值加入另一设好的path集合,将其作为节点,令节点的内容就是。循环的话就发现他遍历了树的宽度,我们可以猜测,递归则就是遍历数的深度,接下来我将。参数是拿来干什么的呢,其实也是删除一些节点,他就是令每个父节点下遍历子节点时。数组,目的在于去除同一路径下的相同位置的节点,删除的节点如下图所示。原创 2022-10-23 13:51:32 · 329 阅读 · 0 评论 -
leetcode332重新安排行程刷题打卡
对目的地进行排序,这样就自然的对答案进行按字典排序自然的就是最小,并增加一个引用计数,为。为起始地选择目的地,由于使用的map来保存目的地,所以会以字典序从小到大自动排序,外层。假定所有机票至少存在一种合理的行程。的二维数组,其中每个元素都是一个存放string的数组,所以以这种形式的增强。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。数组中的元素个数,在终止条件中会有用的,每次进入回溯会对。已经自动排序,所以第一个返回的题解一定是最小字典序的。,无需有判断答案是最小字典序,根据前面的说法,原创 2022-10-23 13:44:27 · 668 阅读 · 0 评论 -
leetcode每日一题刷题打卡1700
然后因为取三明治只能从栈顶,然后遍历三明治,对于栈头元素,result[i] == 0 的话则可以直接返回,因为没人需要的三明治会一直在头那儿卡着,即使下面有其他学生喜欢的也不管。但是这个思路是对的,或者说我不知道后续怎么办,不知道如何结束这个循环,最终提交就是超时。的数组,题目中刚好有0和1,直接按照索引统计0和1,首先遍历学生数组,为数组增加元素。匹配则学生指针++,三明治指针++,且设置学生值为2,用于标记吃过的学生。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。不匹配则学生指针++原创 2022-10-20 12:50:21 · 362 阅读 · 0 评论 -
leetcode47全排列2刷题打卡
给定一个可包含重复数字的序列nums,返回所有不重复的全排列。本题相较于全排列1多了序列里面可以包含重复数字的条件,这样一来全排列的解就会包含重复的解,就要求我们针对这个重复设计方法,findcontinue[1,1,2]booltrue参照,使用局部集合来去掉同一层上的重复结点。确定参数和返回值used确定终止条件全排列每个解的大小一定等于nums数组的大小,所以返回条件是只要path大小等于了nums,无需写确定本层逻辑。原创 2022-10-18 11:06:05 · 312 阅读 · 0 评论 -
leetcode491递增子序列刷题打卡
给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中。你可以按返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。原创 2022-10-16 22:11:28 · 350 阅读 · 0 评论 -
leetcode90子集2刷题打卡
子集一题,在原数组中多了重复的数字,这就导致了子集一定有重复的,而题解要求不能有重复的,因此在回溯中需要用到一种方法,增加一个。被枚举过,反之没有被枚举过。于是在回溯的外层for循环中可以加一个去重的条件,判定。,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。返回的解集中,子集可以按。相同,本题就是多了一个去重的步骤。索引位置处值相同且被使用过就。数组相同,全体初始化为。原创 2022-10-15 18:13:21 · 96 阅读 · 0 评论 -
leetcode654最大二叉树刷题打卡
题目描述给定一个不重复的整数数组 。 最大二叉树 可以用下面的算法从 递归地构建:创建一个根节点,其值为 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 构建的 最大二叉树 。题解思路我的一些方法有点暴力了,导致最后提交后执行用时特别大,但是也许会很好理解这道题我首先写了两个方法,第一个是找最大值的方法,参数有数组和左右下标,根据下标给出的范围来找这个范围中的最大值,代码如下INT_MIN放在****头文件中......原创 2022-07-10 11:47:48 · 254 阅读 · 0 评论 -
leetcode106从中序与后序遍历序列构造二叉树刷题打卡
题目描述:给定两个整数数组 和 ,其中 是二叉树的中序遍历, 是同一棵树的后序遍历,请你构造并返回这颗 二叉树题解思路:由中序遍历序列与后序遍历序列或者与前序遍历序列可以唯一的确定一颗二叉树,本题给出的是中序与后序,则由后序的最后一个结点可以唯一的确定根节点,然后就可以找出中序中的根节点,在中序中,根节点的左右子数组分别代表根节点的左右子树序列,可以使用递归来解递归三部曲:确定参数与返回值确定终止条件确定本层逻辑在中序中找到切割点的索引值,然后遵循一个相同的原则来切割数组,我遵循的是左闭右开的原则,原创 2022-07-09 09:12:10 · 493 阅读 · 0 评论 -
leetcode104二叉树的最大深度刷题打卡
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。关键词: 递归、回溯递归三件套:参数设置与返回值设置终止条件本层逻辑完整代码:......原创 2022-06-19 20:26:08 · 161 阅读 · 0 评论 -
leetcode113路径总和2
回溯原创 2022-06-18 18:07:56 · 158 阅读 · 0 评论 -
leetcode112路径总和刷题打卡
回溯原创 2022-06-18 18:06:47 · 152 阅读 · 0 评论 -
leetcode404左叶子之和刷题打卡
三种遍历手段来解题原创 2022-06-12 19:00:51 · 96 阅读 · 0 评论 -
二叉树的统一迭代遍历法
二叉树原创 2022-05-28 10:13:10 · 137 阅读 · 0 评论 -
leetcode94二叉树的中序遍历(迭代做法)
中序遍历迭代法原创 2022-05-22 01:13:30 · 234 阅读 · 0 评论 -
leetcode347前k个高频元素刷题打卡
前k个高频元素原创 2022-05-16 00:56:27 · 123 阅读 · 0 评论 -
leetcode239滑动窗口的最大值刷题打卡
滑动窗口的最大值原创 2022-05-04 13:12:28 · 477 阅读 · 0 评论 -
leetcode150刷题打卡
逆波兰表达式求值原创 2022-04-30 16:27:01 · 96 阅读 · 0 评论 -
leetcode1047刷题打卡
删除字符串中的所有相邻重复项原创 2022-04-28 22:11:29 · 98 阅读 · 0 评论