- 博客(69)
- 收藏
- 关注
原创 【每日一题】2.27 验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。
2024-02-27 21:04:47
249
原创 【数据结构】17 二叉树的建立
由于树是非线性结构,创建一颗二叉树必须首先确定树中结点的输入顺序,常用方法是先序创建和层序创建。层序创建所用的节点输入序列是按数的从上至下从左到右的顺序形成的各层的空结点输入数值0。
2024-02-17 19:07:12
605
1
原创 【数据结构】15 队列应用实例:多项式加法运算
我们准备采用不带头节点的单向链表结构表示一元多项式,并按照指数递减的顺序排列各项。对列表存放的两个多项式进行加法运算时,可以使用两个指针p1和p2。初始时的p1和p2分别指向这两个多项式第1个节点(指数的最高项)。通过循环不断比较p1和p2所指的节点,比较结果为以下三种情况之一并作不同处理。
2024-02-14 21:19:31
754
原创 【 每日一题】05 三角形最小路径和(DP4)
给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1。示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示:23 46 5 74 1 8 3。
2024-02-14 19:58:37
407
原创 【数据结构】14 队列(带头结点的链式存储和顺序存储实现)
队列是一个有序线性表,但是队列的插入、删除操作是分别在线性表的两个不同端点进行的。设一个队列Qa1a2...an,那么a1被称为队头元素,an为队尾元素。假如将元素A,B,C,D依次插入队列,第一个从队列中删除的元素为A,即先插入的将被先删除,故队列也称为先进先出表。:队列:一个有0个或者多个元素的有穷线性表:对于一个长度为正整数MaxSize的队列Q, 记队列中的任一元素X。
2024-02-12 22:37:29
1860
原创 【数据结构】12 堆栈应用:表达式求值
有一个常量表达式的中缀表达式为:5 + 6 / 2 - 3 * 4,其后缀形式表示为: 5 6 2 / + 3 4 × -。后缀表达式的特点是运算符位于两个预算数之后。其前缀表达式为: - + 5 / 6 2 × 3 4。后缀表达式相比于中缀表达式的求值要容易很多。从左到右扫描该表达式:(1)遇见运算数5 6 2时不做计算,同时将5 6 2压入栈中。(2)扫描到 / 时,把栈中最前的两个数取出,做运算得到结果3,压入栈中。
2024-02-11 18:54:17
1339
1
原创 【每日一题】04最小路径和 (DP3)
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例 1:输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:因为路径 1→3→1→1→1 的总和最小。
2024-02-11 15:26:05
315
1
原创 【数据结构】11 堆栈(顺序存储和链式存储)
可认为是具有一定约束的线性表,插入和删除操作都在一个称为栈顶的端点位置。也叫后入先出表(LIFO):堆栈(STACK): 一个有0个或者多个元素的有穷线性表。生成空堆栈,其最大长度为MaxSize判断栈S是否已满。将元素X压入堆栈删除并返回栈顶元素如果将abcd四个字符按顺序压入堆栈,是否可能产生cabd这样的序列,共可能产生多少种输出?:只可能是A进——A出: 2种情况A进A出 B进B出A进B进 B出A出: 5种情况A进B进C进 C出B出A出。
2024-02-09 11:45:26
2033
1
原创 【数据结构】10 广义表与多重链表
广义表不仅跟线性表一样可以表示简单是线性顺序关系,而且可以表达更复杂的非线性多元关系。GLista1a2...ai−1aiai1...an其中,ai可以是单元素,也可以是广义表。由于广义表的元素可以是不同的结构,因此不适于顺序存储,通常用,也就是用由结点组成的链表来表示广义表。结点对应每个元素。如果该元素还是一个广义表,则通过该节点引出另一个链表。广义表的结点可能由两种情况。
2024-02-08 15:38:30
1153
原创 【每日一题】03 不同路径Ⅱ(DP2)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。
2024-02-08 14:23:21
211
原创 【数据结构】09 线性表的链式存储实现
线性表的链式存储不需要用连续的存储单元来实现,不需要逻辑上相邻的两个数据元素在物理上也相邻,它是通过链建立其数据元素之间的逻辑关系,因此对线性表的插入、删除不需要移动数据元素,只需要修改连。为了访问链表,必须找到链表的第一个数据单元,因此实际应用中常用一个称为“表头(Header)”的指针指向链表的第一个单元,并用它表示一个具体的链表。相关操作初始化插入
2024-02-07 22:28:19
474
1
原创 【每日一题】02 不同路径(DP1)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 :输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。
2024-02-07 20:22:11
239
1
原创 【每日一题】01 二进制求和
给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。示例 1:输入:a = “11”, b = “1”输出:“100”示例 2:输入:a = “1010”, b = “1011”输出:“10101”
2024-02-07 19:36:16
355
1
原创 【数据结构】08 线性表的顺序存储
由同一类型的数据元素构成的有序序列的线性结构。:由n个元素构成的有序序列(a1,a2,…,an),ai1为ai的直接后继,ai−1是ai的直接前驱。直接前驱和直接后驱反映了元素之间一对一的邻接关系。(1)L。
2024-02-01 20:19:53
628
1
原创 【数据结构】07双指针技巧
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true。否则,返回 false。示例1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。
2024-02-01 18:35:08
821
1
原创 【数据结构】06单链表逆转
和 q->Next =L;顺序不能颠倒,若p= p->Next放在后面,则p的next就不是原链表,而是L了。L是给定单链表,函数Reverse要返回被逆转后的链表。本题要求实现一个函数,将给定的单链表逆转。
2024-02-01 18:20:40
222
1
原创 【数据结构】05链表相关操作
链表是一种,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种结构。链表由一系列节点(链表中每一个元素称为节点)组成,每个节点包括两个部分: 一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。
2024-01-30 20:48:31
360
1
原创 【数据结构】04数组的相关操作
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
2024-01-28 23:12:43
350
原创 【数据结构】03双指针
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]设置双指针,i指首,j指尾。
2024-01-26 21:51:27
781
1
原创 【数据结构】02 字符串匹配&KMP算法
有如下两个字符串S和P,需要判断出P是否为S的子串。简单的方法是以S的每个字符为匹配串的首个字符,将其与P串进行匹配。这个算法的时间复杂度为O(mn),若遇到较大的字符串,耗时长。
2024-01-26 18:09:31
1077
1
原创 【数据结构】01数组与字符串
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。:暴力遍历: 二分查找思想:小于中间数,往左查;大于中间数,往右查。查到最后left = right时,还未查到: 若小于该值,返回mid;若大于该值,返回mid+1;
2024-01-25 20:52:36
427
原创 【C\C++基础】指针
指针是一种变量,它存储了另一个变量的地址。通过指针,我们可以直接访问、修改存储在内存中的数据。若有一个整型变量int a = 9;想知道a的存储位置,可使用指针int * p对其取地址。输出:p = 708180484int占用4个字节的空间,a取值为9,即00001001,数值不大,被存入00000004地址的空间上。使用指针p指向a的存储空间,p的数值即为a的地址。即就是int *类型的变量可存放一个int数据的地址。
2024-01-22 15:25:47
376
2
原创 【机器学习】贝叶斯模型
计算每种特征的平均值、方差,按照假设的正态分布,估计P特征∣类别P(特征|类别)P特征∣类别计算训练样本的每个类别的频率,估计P类别P(类别)P类别把1和2得到的数据带入,计算每一种可能类别的概率,取出现可能性最大的类别。
2023-10-26 20:42:00
766
原创 【机器学习】K邻近算法(KNN)
如图是鸢尾花特征及类别数据的部分显示。有0,1,2三个类别,我们可以通过比较鸢尾花样本特征的相似程度来对鸢尾花种类进行判断。
2023-10-19 21:39:27
132
【视频理解与安全分析】基于统计的关键帧提取与时序搜索模型在异常行为发现中的应用研究
2025-11-29
【人力资源管理】AAA公司员工行为规范与管理制度:企业内部合规运营及员工职业操守指导手册
2025-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅