- 博客(27)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 Linux内核——Linux内核体系模式(二)
Linux内核将中断分为两类:硬件中断和软件中断(异常)。每个中断是由0-255之间的一个数字进行标识。
2024-07-01 21:38:40
1102
原创 Linux学习 内核同步(文章搬运)
定义一个顺序锁有两种方式:seqlock_t seqlock,seqlock_init(&seqlock);
2024-07-01 21:38:27
809
原创 图论——代码随想录打卡
深度优先搜索算法是从一个方向去进行搜索,直到遇到走不下去的终点,再进行回溯更换方向,重新进行搜索。因此二叉树的递归法就是dfs。(1)确认递归函数,参数首先,对于二维的图而言(邻接矩阵),深度搜索需要二维数组数据结构保存所有的路径,需要一维数组保存单一的路径。(2)确认终止条件:一般根据要求进行设计(3)处理目前搜索节点出发的路径:一般这里就是一个for循环的操作,去遍历 目前搜索节点 所能到的所有节点。如图七所示, 路径2 已经走到了 目的地节点6,那么 路径2 是如何撤销,然后改为 路径3呢。
2024-06-20 10:51:04
1029
原创 Linux _iomem限定符
是一个内存域限定符,用于告诉编译器该变量或指针指向的内存区域是位于I/O空间(通常是硬件设备的地址空间)而不是普通的RAM。可以确保编译器和处理器正确地处理这些访问,因为I/O空间的访问通常需要特殊的指令或配置。限定符的指针时,编译器通常会生成不同的代码,以确保正确处理I/O空间的访问。在嵌入式系统、内核驱动程序或其他与硬件直接交互的场景中,使用。
2024-06-05 14:27:15
237
原创 代码随想录打卡
给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有的可能的分割方案。示例 1:输入:s = “aab”,输出:[[“a”,“a”,“b”],[“aa”,“b”]]本题这涉及到两个关键问题:1)切割问题,有不同的切割方式;2)判断回文;切割问题,也可以抽象为一棵树形结构:从树形结构的图中可以看出:切割线切到了字符串最后面,说明找到了一种切割方法,此时就是本层递归的终止条件。
2024-05-19 17:03:38
688
原创 代码随想录打卡day27&day28
回溯法解决的问题都可以抽象为树形结构,是的,我指的是所有回溯法的问题都可以抽象为树形结构!因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度。递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)。回溯三部曲:回溯函数模版返回值以及参数返回值一般为void,参数是需要什么填什么。回溯函数终止条件回溯法一般是在集合中递归搜索,集合的大小构成了树的宽度,递归的深度构成的树的深度。
2024-05-15 11:31:18
924
原创 代码随想录 打卡day23,24,25
注意审题,题目当值说到是一个二叉搜索树,因此我们只需进行中序遍历即可,然后得到一个有序数组之后进行编辑,统计出来最小差。其实可以在遍历过程中进行计算和记录。
2024-05-13 11:16:25
810
原创 代码随想录刷题打卡day22
使用递归的思路构造二叉树,一般选择前序遍历对树进行构造,需要先构造中间节点,然后递归构造左子树和右子树。中序遍历为一个数组,然后看这个数组是否有序。前序遍历,同时进行加法。
2024-05-09 10:56:02
479
原创 代码随想录打卡Day21&Day22
切割点在后序数组的最后一个元素,就是用这个元素来切割中序数组的,所以必要先切割中序数组。中序数组相对比较好切,找到切割点(后序数组的最后一个元素)在中序数组的位置,然后切割。接下来就要切割后序数组了。首先后序数组的最后一个元素指定不能要了,这是切割点 也是 当前二叉树中间节点的元素,已经用了。中序数组我们都切成了左中序数组和右中序数组了,那么后序数组就可以按照左中序数组的大小来切割,切成左后序数组和右后序数组。第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)
2024-05-08 23:26:02
392
原创 代码随想录day19&day20打卡
最大深度已经学习过了,实质就是递归的去判断左右子节点的深度,然后对其进行返回。附加两个学习的部分:(1)使用前序遍历的方法求解(2)迭代法,使用层序遍历即只需要记录遍历的层数即可最小深度题目:在递归法当中,要注意左子树不存在或者是右子树不存在的问题,其余的按照最大深度的模版套用即可。迭代法只需增加一个条件,就是到这个节点时,左右子都为空,那么可以返回这个深度。
2024-05-07 22:04:00
937
原创 代码随想录打卡第14天&第18天
(1)二叉树的定义,C++方法一定要知道,相对于链表而言,二叉树就是多了两个指针,即左右子节点(2)第二个是二叉搜索树和平衡二叉搜索树,这里预计五一放假回来后补坑(已经有栈和队列在STL的底层、优先队列、大小顶堆、KMP算法的笔记总结要补了,一定补上!
2024-05-06 17:47:29
832
1
原创 代码学习录打卡Day13
使用单调队列,需要一个队列,这个队列呢,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数值),然后que.front()就返回我们要的最大值。队列里的元素一定是要排序的,而且要最大值放在出队口。这个队列只需要维护有可能成为窗口里最大值的元素即可,并且保证队列里的元素都是从大到小的。
2024-04-29 23:35:48
979
原创 代码随想录day11打卡
个人认为自己关于C++中栈、队列这一部分没有学的很好,周日趁着不打卡了补齐这个学习进程。感觉还是要搞清楚STL当中的原理才算是真正学会这一相关的内容。
2024-04-27 23:40:23
329
原创 代码随想录刷题第10天
栈是以底层容器来完成其所有的工作,对外提供统一的接口,底层容器是可以插拔的(说明可以使用哪种容器来实现栈的功能)。因此STL中栈一般归类为container adapter(容器适配器)。栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。stack中所有元素的进出都必须符合“先进后出”的逻辑,只有stack的顶端的元素,才有机会被外界取用。stack不提供走访功能,也不提供迭代器。
2024-04-26 15:17:52
238
原创 代码随想录第八天打卡
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”]示例 2: 输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”]
2024-04-24 22:46:55
408
原创 代码随想录Day7刷题
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n2),四数之和的时间复杂度是O(n3)。仍然是将数组元素进行排序,定义i作为循环的遍历指针,那么需要另外两个指针left和right,一个指向left=i+1,另一个指向right=num.size()-1。
2024-04-23 15:10:33
471
原创 代码随想录刷题打卡第5天
对于C++中的哈希表,就是三个容器:map、set和数组。主要是关于无序容器的应用。但是关于底层实现原理这里埋一个坑,暂时不写,等到周末记录一波。
2024-04-22 16:44:24
297
原创 代码随想录第四天打卡笔记
n如果大于1是什么情况呢,就是fast指针在环形转n圈之后才遇到 slow指针。其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。
2024-04-21 22:51:53
857
原创 代码随想录第三天打卡笔记
这种方法显然需要考虑两次情况,这里学习了新的方法叫做虚拟头结点的方法:即先找一个虚拟的结点指向头结点,然后按照删除非头结点的方式删除元素,之后再归还真正的头结点。(2)在cur->next指向pre之前,一定要先使用temp保存cur->next,不然后边cur想要移到下一个元素时将找不到位置。另一种思路,其实也可以从后开始向前翻转结点,就像是cur->next->next = cur。(1)需要两个指针,pre和cur,一个用于遍历,另一个用于辅助修改指针指向。从以上可以写出递归算法。
2024-04-20 23:24:19
406
转载 数据分析与多项式计算
5.1 数据统计分析1.求矩阵的最大元素和最小元素max():求向量或矩阵的最大元素。min():求向量或矩阵的最小元素。当参数为向量时,上述函数有两种调用格式:( 1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。( 2) [y,k]=max(X):返回向量X的最大值存入y,最大值元素的序号存入k,如果X中包含复数元素,则按模取最大值。例1 求...
2019-07-20 21:39:03
948
原创 MATLAB——三维图像
1.绘制三位曲线(1)plot3函数1.基本用法:plot3(x,y,z);其中,参数x、y、z组成一组曲线的坐标。例1 绘制一条空间曲线x=[0.2,1.8,2.5];y=[1.3,2.8,1.1];z=[0.4,1.2,1.6];plot3(x,y,z)grid onaxis([0,3,1,3,0,2]);例2 绘制螺旋线t=linspace(0, 10*pi,...
2019-07-12 20:31:37
19327
转载 MATLAB——二维图形绘制
1.二维图线1.plot函数(1)plot函数的基本用法:plot(x,y)(其中,x和y分别用于存储x坐标和y坐标数据。通常,x和y为长度相同的向量。)例1 绘制一条折线。ix=[2.5, 3.5, 4, 5];y=[1.5, 2.0, 1, 1.5];plot(x, y) ...
2019-07-10 22:27:09
7333
原创 符号对象(2)
符号表达式化简1)函数factor(E)此函数功能是对富豪表达式E进行因式分解。对于大于252的整数的分解,可使用语句factor(sym('N'))。2)函数expand(E)此函数功能是将符号表达式E展开,应用于多项式表达式、三角函数、指数函数、对数函数的展开。3)函数collect(E,v):其作用是将符号表达式E中的v的同幂项系数合并。collect(E)是将符号表达式E中由函...
2019-07-04 20:56:43
306
原创 符号矩阵(1)
1.用命令sym定义矩阵这时的函数sym实际上是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。sym_martix = sym('[a,b,c;Jcak,HelpMe,NOWAY]')sym_martix = [ a, b, c] ...
2019-07-03 22:48:37
7171
转载 MATLAB自学笔记——矩阵
1.1.3多维数组及其操作[矩阵的基本操作] (https://blog.csdn.net/baidu_34604003/article/details/52491161)1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组。2.利用标准数组函数创建多维数组A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似...
2019-07-01 23:21:07
240
C++ 类与对象 单个:的作用?(我真的不理解
2021-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人