自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leecode算法题.基础篇

【代码】leecode算法题.基础篇。

2024-02-26 18:13:05 399

原创 递归---持续更新

递归就是有去(递去)有回(归来),如下图所示。(3)⭐️关键操作: 先 压入cur右孩子节点再压入左孩子节点,因为先序遍历需要左孩子节点在栈顶,让左孩子节点在栈顶。(2). 数据结构是递归的(斐波那契数列, 树的操作)—中等(模版化)(1).线性递归(阶乘, 数列前n项和/积, 链表的相关问题)—基础。(3). 问题的解法是递归思想来实现的:—难。a(1) = a(2) = 1 —基条件。(4)重复(1)~(3)直到栈为空结束。(0)首先将根节点压入栈完成初始化。(1)从栈顶弹出一个节点cur。

2024-02-23 12:02:51 765

原创 深度学习笔记

1956年夏季首次提出“人工智能”这一术语,科学家们尝试了各种方法来实现它。这些方法包括专家系统,决策树、归纳逻辑、聚类等等,但这些都是假智能。直到人工神经网络技术的出现,才让机器拥有了“真智能”。为什么说之前的方法都是假智能呢?因为我们人类能清清楚楚地知道它们内部的分析过程,它们只是一个大型的复杂的程序而已;而人工神经网络则不同,它的内部是一个黑盒子,就像我们人类的大脑一样,我们不知道它内部的分析过程,我们不知道它是如何识别出人脸的,也不知道它是如何打败围棋世界冠军的。

2024-02-19 15:40:59 710

原创 python.leetcode习题知识点笔记

给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长。对一个大小为 n x n 的矩阵而言,如果其每一行和每一列都包含从 1 到 n 的 全部 整数(含 1 和 n),则认为该矩阵是一个 有效 矩阵。给你一个大小为 n x n 的整数矩阵 matrix ,请你判断矩阵是否为一个有效矩阵:如果是,返回 true;解释:你可以用三个边长组成一个三角形:1 2 2。问1:如何将十进制数值字符转换为二进制数值?输入:nums = [2,1,2]

2024-02-17 09:00:14 409

原创 python语法学习

对称差(将公共元素去掉)|a^b|symmetric_difference|symmetric_difference_update||对称差(将公共元素去掉)|a^b|symmetric_difference|symmetric_difference_update||差| a-b |difference | difference_update||运算|运算符|新集合方法|更新原集合方法||并| a|b |union|update||并| a|b |union|update|

2024-01-25 09:27:05 925

原创 408.组成原理.杂记

1.总线周期(传输周期)vs. 2.时钟周期 通过各自代表的含义区分:总线周期(传输周期)就是一次总线传输数据的总时间类比于存储中的1字长,时钟周期类比于存储中的1字节,时钟周期就是机器周期。发出一个请求,请求总线使用权。2st:当总线使用权分配给了这个设备的时候,该设备就可以使用数据总线和地址总线来进行传输,该设备到底和哪个设备进行传输是由当前已经获得总线控制权的设备决定的。●SUM:本节概念较多,尤其是1.传输周期(总线周期) vs. 2.时钟周期 3.总线的工作频率 vs. 4.总线的时钟频率。

2024-01-11 12:32:42 406

原创 递归——分治思想实现的最好工具

递归与分而治之思想

2024-01-11 12:31:50 394

原创 构建线索二叉树的思考——指针的引用与二级指针

其实在算法执行过程中,两个指针的 作用不同,p是用于对节点进行操作的,在传参过程中传递节点的地址即TBTNode *p就可以了,而pre是用于记录当前节点p的前驱节点的,在整个递归过程中是唯一存在的,不是且不能随着一个函数的调用的返回而复原,如果不使用引用,那么在递归调用过程将随着当前递归调用的函数结束而返回上次指向的节点,pre将永远不能移动,我们为了让其在函数递归的过程中传递的永远都是这个指针而不是递归栈中函数复制参数创造的临时的pre所以我们要通过引用保证其唯一性。

2023-07-08 20:50:02 208

原创 递归为什么难理解

继续上层函数执行的内容继续执行;} (2)递归中每次的函数调用也不是简简单单重复执行一遍函数那么简单,有稍微理解点的会说那在递归调用中传递的参数不一样,会改变函数的输入,不完全对,你这只是在第一层。·return的时候传参 + 出栈 + 继续返回地址执行,这些隐藏的操作,才导致递归的难以理解,更进一步说递归就是栈的应用,而我们很多时候就忽视了这一点仅仅从递归能做什么直接切入而不清楚递归的原理,当然都是大学问,但是学习不应该循序渐进吗?今天温习了一遍树的先序遍历的非递归实现,对于递归的操作有了更深入的理解。

2023-07-03 23:05:50 305

原创 数组指针&多维数组——在函数内创建变长数组

我们在DS中树、图的邻接矩阵存储中会用到指针数组,虽然可以用C++提供的引用机制在很多场合来避开二级指针的使用,但学习二级指针对于对指针在程序中的特性的理解可以更加深入,可以说搞明白了二级指针才能理解”指针是C的精髓“这句话,所以二级指针应当予以重视。4.1多级指针——存储指针地址的指针变量★4.2指针数组——(元素类型为)指针(的)数组(1)声明: 数组元素类型 数组名[元素个数];例如:int * p_arr[4];//声明了一个数组大小为4,元素类型为int*的数组。

2023-06-23 18:34:47 158

原创 OS.二轮复习.§2进程与线程

(2)忙则等待—— 当 存在一个进程进入某临界资源的临界区使用该临界资源时(进程可以在该临界资源设置标志已表明该临界资源正在被使用,从而告知其他进程防止其他进程没必要的访问,其他进程在进入临界区访问临界资源前,也会检查相应的临界资源是否正在被使用的变量来决断是否进入相应的临界区),则其他进程如果也想使用该临界资源,则需要等待。(1)空闲让进 —— 只要临界区空闲(临界资源没有被使用),且有进程请求进入临界区访问临界资源,则立刻让该进程进入临界区(强调的是不让这个进程等)退出区//用来解锁临界资源的标志位。

2023-06-12 15:44:25 66

原创 循环模型构建.条件状态临界分析法

在复习线性表的两个基本操作时自己的感悟, 记录,欢迎探讨。

2023-05-24 20:10:30 73

原创 记录型信号量实现进程同步、互斥.单类生产者消费者.以进程同步为主互斥为辅的问题

信号量机制,完成进程同步与互斥

2023-01-13 11:23:47 225

原创 [算法]DFS_adjVList_回溯思想_递归实现分析

DFS算法很有趣, 算法实现的简简单单几行代码,C语言用循环内嵌套递归来分别实现"走到头再回去"和"访问"这两个操作,当选择的顶点被访问过后,通过。

2022-10-24 11:16:28 447

原创 [算法]图_广度优先_邻接矩阵&邻接表实现

【代码】[算法]图_广度优先_邻接矩阵&邻接表实现。

2022-10-23 20:28:20 119

原创 [算法]树的深度遍历(前序)非递归实现

深度遍历,树的先序遍历,非递归实现

2022-10-23 18:10:24 168

原创 【算法】贪婪思想_图最小生成树_Prim算法

参考《大话数据结构》 《算法图解》《我的第一本算法书》 王道408 天勤408

2022-10-22 14:11:59 88

原创 【算法】分而治之思想_递归方法_例子:数组求和

《算法图解》_p45_分而治之算法

2022-10-22 14:08:53 102

原创 【DT】并查集

掌握并查集的逻辑结构和物理结构·掌握并查集的并、查操作的代码描述·掌握并查集的并操作的优化·掌握并查集的查操作的优化。

2022-10-13 21:29:04 241

原创 二叉树层序遍历生成实现

2.TN_adr 这里的adr代表地址(即指针),但是这个变量会被二级指针所使用,所以强调他的本质即寻址操作。1.TNode_t 这里的_t代表typedef。

2022-10-08 10:19:53 122

原创 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点(递归的本质和详解)

形参为引用的函数体内部,如果直接对引用的变量操作本质上⇔*引用的变量名 也即解引用后操作)稍微说一下本质,引用就是把一个变量名(基本变量名对应其所在内存的数据区数据,但是要注意:数组的变量名是数组第一个元素的地址区数据)所对应的内存的地址引导出来使用,解引用就是把变量内存存储的数据区上所存储的代表地址的十六进制数解为内存的地址所对应的变量(也即通过解引用导向的内存地址来直接操作这个地址的内存),只不过只有指针这种类型的变量的数据区可以存储地址,所以解引用也只这对与指针。下面是我写的关于递归实现的笔记。

2022-09-27 16:18:56 885 2

原创 罗素悖论的本质

我们对一个概念进行了重定义,这个重定义与之前约定的定义相冲突进而产生了对这个概念 的解释的二义性。2.内容:设性质P(X)表示x ∉x,现假设由性质P确定一个集合A,A = {x|x∉x}。由上个例子可以看出,我们对之前约定的数字这个集合属性进行了重定义。1.形式:任给一个性质,满足该性质的所有集合总可以组成一个集合。集合具有的性质:使用谓词逻辑构成的命题为集合规定的性质。元素与集合的关系的定义:每个元素可以单独构成一个集合。集合具有的性质⇔集合中各元素具有的性质。...

2022-08-16 12:22:06 251

原创 离散数学蕴含连接词的真值表理解

其实也就是说,p->q是一种命题p和q的关系,这种关系的真假可以用符合关系要求的命题p和q来验证(也就是p符合要求 q符合要求,套入p->q这个关系能从p推出q也就是:p->q = 1;问题是这样的:如果你学到了离散数学的逻辑联结词时,从析取、合取到异或、等价对于其真值表的理解都没任何问题(我们平时也是这样使用的)但是有个叫“蕴含”的连接词,这个连接词描述了一个命题可以从另一个命题推断出来,如果p则q(表示为p->q)也叫做p蕴含q。第三个:条件p为真,结论q为假,p->q:如果条件为真则结论为假(❓)..

2022-08-12 19:50:10 9857 1

原创 【ADT】串_KMP算法

EX2:比如王道的他是下标为0不存放元素,且(下标j对应的next[j]是该j对应下标位置包括该下表对应元素以及之前的元素对应的模式串中的元素组成的子串含有的最大公共前后缀)+1 ⇔(karl的下标j与对应next[j])+1,所以王道其实相当于先将所有元素的下标都后移也就是第一个元素对应下标1而不是karl的0,然后将next[j]数组对应的值也一同+1这样相当于平移了数组元素与回溯的下标,也就是没有什么变化。那这里匹配失败后的信息是指什么呢?这是一个动态的过程这个过程天勤演示的很形象!...

2022-08-09 08:30:55 64

原创 【ADT】串_朴素模式匹配

continue

2022-08-07 23:05:49 52

原创 【ADT】串_基础

2.[查漏补缺]C中的:字符数组和字符串指针。

2022-08-07 23:04:35 72

原创 【ADT】串_存储_基操

串这里基操相交于创销增删改查空多了:清空、求字串、比较、定位操作,介于此块代码的掌握不够熟练,这块需要多code。

2022-08-06 21:57:26 70

原创 【学习能力】

2.Memory _review

2022-08-06 09:49:18 55

原创 【Python Learning Daily】Day4_loop

Today I spent more time on ADT and let's go straight for the study

2022-08-06 00:03:22 133

原创 【ADT】双端队列_DoubleEndedQueue

1.02 我们将双端队列的一边挡住,那么这样子就是栈的情况,只要双端队列能实现的操作栈同样也能实现。1.01 本质上:栈、队列、双端队列都是插入和删除操作受限的线性表,只不过限制不同。双端队列:只允许从两端插入,从两端删除的线性表。...

2022-08-05 21:05:18 62

原创 【ADT】队列_顺序实现_补充

考点

2022-08-05 20:33:51 72

原创 【ADT】14.10_queue_using_Linklist

/该语句的含义是,创建的是名为:front的Node结构体指针并赋予初始值NULL(空),名为:rear的Node结构体指针并赋予初始值NULL(空)。//该语句的含义是,为结构体node别名Node,下文中Node ⇔ struct node。并没有创建结构变量。...

2022-08-05 17:01:05 41

原创 【概率论日记】程序员的数学_C1_概率的定义(以上帝视角看待概率)

本章从蒙提霍尔的三门问题作为出发点,其实大约三个月前在观看,电影最TOP的一期韩剧解说就有关于蒙提霍尔三门问题的剧情,其实高中学习概率内容也不是很全面,不过大体上也知道做概率这种题,最稳妥的方法就是:把所有事件都列出来,然后按照问题将发生的事件数量/总事件的数量,所得结果便是该事件发生的概率,之后这类问题由古典概型引出了事件发生概率这种对于古典概型下的衡量事件发生概率的简单粗暴的方法,但是它的原理我却在大量的学习下忘记了,这也是最重要的或者说最具有普适作用的。而如果选择不去换门,那么应得的概率仅是1/3。.

2022-08-05 12:55:40 1582

原创 [ADT]CircularQueue_using_Array

circular q

2022-08-04 17:45:40 42

原创 【Python Learning Daily】Day3_condition

1)2)

2022-08-04 12:26:56 84

原创 ✏️【MATH】证明_反证法_归纳法

所以我觉得 2)这句话不太严谨,或者说说起来没有那么好理解,因为这种表述方式中“根据假设的否定然后去推导出矛盾的结果”并没有说出存在推倒不出矛盾结果的情况,并且不是所有的证明都是能推导出矛盾结果的,所以我认为这种表述不如换成:我们将假设作为条件尝试去推论出一个与假设矛盾的结论,这种矛盾结论就说明假设不成立,而我们假设的是断言的否定,否定不成立而否定的矛盾(对立面)成立(命题与命题的否定存在对立关系),所以就证明了断言的成立。我们去根据这个假设的断言的否定然后去推导出矛盾的结果。先假设要证明断言的否定成立。.

2022-08-04 10:57:33 142

原创 [ADT]Queue_using_Array

2022-08-03 23:37:05 58

原创 【Python Learning Daily】Day2

【Python Learning Daily】Day2。

2022-08-03 14:40:09 109

原创 【ADT】栈_链栈_不带头节点(王道课本推荐)

其实区别还蛮大的,1.头插法的时间复杂度O = 1,而尾插法的时间复杂度O = n,造成这个原因的本质原因是链表本身物理实现并不像数组那样是可以按照数组索引(index)对数组的元素进行随机访问,因为链表是我们用指针在堆区开辟的内存并将这些内存用结构体进行人为的设置,结构体内有结构指针,结构指针将堆内的结构内存之间进行了定向链接,注意哦是之间是一对一的关系,而不是一对多,虽然也可以一对多,这样就有点树的感觉了,不过总的来说就是我们定义的结点结构内的结构指针是一个决定了这种结点与结点间是一对一的关系。....

2022-08-02 20:38:26 206

原创 【Python Learning Daily】Day1

Grain Guo's learning daliy

2022-08-02 11:41:49 96

空空如也

空空如也

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

TA关注的人

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