自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 真值表,主析取范式,主合取范式,栈,哈希表

代码如图所示 (具体优先级)以a为栈头,以b为栈外符号。

2024-02-25 13:40:56 362 1

原创 【无标题】

由题可知,对于每个点,其实都只有两种路线,那我们要求最大值,其实只要从下往上取最大值,当我们遍历到起点时,自然是最大值。上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和(路径上的每一步只可沿左斜线向下或右斜线向下走)。输入描述输入的第一行包含一个整数 N\ (1 \leq N \leq 100)N (1≤N≤100),表示三角形的行数。下面的 NN 行给出数字三角形。

2023-08-01 12:37:12 544

原创 深度优先算法--leetcode刷题总结

每个点都是可取可不取的,不取那么继续向前遍历数组,取–将nums[idx]存入path中,因为可重复那么取某一元素的次数是任意的,把满足条件的集合放入答案中即可。即每个点都是可取可不取的,取和不去向下遍历得到的集合不一样,只要是满足题意的集合,就存入答案中。与第一题一样的,但解法有所不同。

2023-05-29 23:56:46 187

原创 动态规划——力扣刷题总结

对每一层情况进行分析,当前层的位置是有上一层的挡板情况确定,分析清楚什么时候右移一个位置,什么时候左移,什么时候卡在挡板处即可。设置一个前缀和sum,当sum+x小于x时,即连续数组包括此x值时,不满足题意,将前缀和重新从x开始。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?表示search_cost,n表示第几个数,j表示取何值。需要 n 阶你才能到达楼顶。简单题:设第n阶的方法为。

2023-05-28 14:16:19 1292

原创 leetcode--优先队列

对数组的存储也是有讲解的,首先我们需返回和之差,故采用前缀和,不过求和方向不同,前一部分有前往后,第二部分,又后往前(便于处理),之后的n/3-1到2*k的位置就是各个部分的满足要求前缀和。为了得到最小差值,我们应该删除 nums[1] = 9 和 nums[4] = 1 ,剩下的元素为 [7,5,8,3]。首先我们看到“前面 n 个元素属于第一部分,后面 n 个元素属于第二部分”,故我们可以分别存储两个部分,且又要使得两部分的差值最小,后面 n 个元素属于第二部分,它们的和记为 sumsecond。

2023-05-21 22:06:44 760

原创 优先队列自定义优先级

值得注意的是,sort函数里的"<",就是从小到大,“>”就是从大到小,这很形象,但c++中STL库中的优先队列刚好相反,优先队列在刷题时常常用到,但是有时优先级定义却千变万化,这时就需要我们自己定义优先级,使得队列以我们的意图排序。

2023-05-21 22:06:25 267

原创 使用对组帮助排序

先将数组排序,找到前k个最大值,在将这前k个最大值恢复原顺序,如何恢复呢,就是我们前面的采用对组啦,我们存储时,将位置与值同时存储,第一次将值从大到小排序,第二次对前k个元素位置从小到大排序(恢复了原顺序,因为位置存储时本就从小到大)虽说对组的本质就是一个结构体,但在刷题时,可以通过此性质变很好的将数组位置和值存储起来。在构建某特定要求的数组(队列)很好用。你需要找到 nums 中长度为 k 的 子序列 ,且这个子序列的 和最大。子序列 定义为从一个数组里删除一些元素后,不改变剩下元素的顺序得到的数组。

2023-05-20 21:07:05 85

原创 利用顺序结构存储和先序遍历二叉树

O(∩_∩)O哈哈~,最开始我遇到利用这个问题还楞了一下,咦?顺序结构。一直用链表,碰到数组做这二叉树题还没反应过来😁😁😁😁。

2023-05-20 13:15:09 89

原创 二叉树层次遍历叶子节点

二叉树层次遍历叶子节点

2023-05-20 12:34:04 122

原创 力扣5月17日刷题总结

给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后,每天 给一个新的人 分享 秘密。既然每一天都会加一些人,那么就从(当天+delay)开始,往后的gorget日期都加上这些人->表示新增的,直到超过结束日期。*如仔细对该步骤进行分析,即可返现如果k=1,则各个字符间的相等顺序是不变,这是移动首字母n(n=s.size())次。我们也可以将其想象为一个环(但有先后顺序用于比较字符串的大小),k=1时,无论如何变换,都是同一个环,而k>1时,给定一个字符串 s 和一个整数 k。

2023-05-17 01:41:30 311

原创 力扣总结,深度优先题

假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]…输出:[3,-1,-1,1,null,null,7,-1,-1,null,-1,3,null,null,8,null,4]在一个 父节点 x 与其左子节点 y 之间添加 -1 节点, 节点 -1、节点 y 为各自父节点的左子节点,在一个 父节点 x 与其右子节点 y 之间添加 -1 节点, 节点 -1、节点 y 为各自父节点的右子节点,输出:[7,-1,-1,5,null,null,6]

2023-05-15 09:42:04 241 1

原创 双向链表刷题总结

对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。最开始我们可能会弄懂不了题意,但之后我觉得这就是一道二叉搜索算法的进阶题,但是其实其思路还是一样,无非多了些处理步骤。二,连接其前一个节点。三,head的前一个节点连接最后遍历的节点。

2023-05-12 11:02:09 824

原创 二分查找刷题总结

在这个函数中使用二分查找是要注意:之前nums[mid]>target时,我们right=mid-1,而现在应该是if(nums[mid]>=target)输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。输入: nums = [5,7,7,8,8,10], target = 8。输入: nums = [5,7,7,8,8,10], target = 6。统计一个数字在排序数组中出现的次数。

2023-05-11 01:43:02 348

原创 线性代数——特征值与特征向量的性质

此处用到了两个关键性质,一:单位阵的转置为其本身,二:转置并不改变行列式的值。先设只有一项,推出其线性无关,在利用数学归纳归纳法对多项时进行讨论。K重特征根对应的线性无关的特征向量的个数小于等于K。用一句话说就是,无关的无关还是无关。(3) 设n阶方阵A的相异特征值为。(1)设A为方阵,则A与。该证明采用数学归纳法。的线性无关的特征向量为。

2023-05-08 16:46:50 1040 1

原创 前序遍历次序输出二叉树的叶子节点&&交换左右节点

(3)交换时,直接对lnode,rnode进行交换,而不是再次定义几个变量,这样是交换不了的。(虽然都是交换地址,但后者是交换新变量的地址😀)问题为构建一颗二叉树,并实现两大功能,(1)以二叉链表为二叉树的存储结构,设计算法按前序遍历次序输出二叉树中的叶子结点。(1)因我们需要不断创造节点,因此我们可以根据输入的字符来判断是否分配空间。(2)以二叉链表作为二叉树的存储结构,编写算法实现交换二叉树每个结点的左孩子和右孩子。(2)先序遍历是先对该节点实行操作(输出节点的数据)

2023-05-07 17:23:02 311

原创 讨论线性方程组是否有解

第一种方法因涉及字母,对其化简为行阶梯型看似繁琐,但如果熟悉运算,倒也按部就班,但记住是扩充行列式,别少了一列。第二种方法看是减少了字母的运算,但步骤较多,需反复运算,如果只是判断是否有唯一解,那只是第二种方法好用。对矩阵进行观察发现,其系数行列式恰好可以组成一个方阵,可对其行列式进行求值,若行列不为零,则为满秩矩阵,则定为唯一解。反之,就得重新考虑。常规方法,将其化为行阶梯型,在根据字母取值的不同情况进行判断。当a,b取何值时,有唯一解,无解,有无穷多个解。这是老师上课讲的方法,感觉还没第一种好用。

2023-05-04 23:41:00 298

原创 学习【线性代数】线性方程组---消元法的心得体会

由此可知,这无非是在矩阵行方向进行变换即可。但是足以尽量不进行列变换(在单纯这一类题中,也没特别的意义的非得进行列变换)。矩阵的一大作用就是利用其存储数据的形式简化对于线性方程组的求解。而其变换在方程组无非就是消元。若系数的列想交换,无非是将各个解的关系想交换,虽解在某种意义上来说没错,但看起来不伦不类。但因矩阵对应的元素在方程组中尤其实际意义。故我们在进行行变换时有所约束。若将方程的值与系数交换,那肯定错了。即唯一解,无解和无数解。

2023-05-04 21:36:35 330

原创 python-函数

此时,可用包裹位置参数,或者包裹关键字参数,来进行参数传递,会显得十分方便。传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组,args是元组类型,这是包裹位置传递。注意:所有位置参数必须出现在默认参数前,包括函数的定义和调用,当然也可通过传参修改默认值。也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传默认参数的值。1.return a,b写法,返回多个数据的时候,默认是元组类型。除内置函数外,当然我们也可以写自己所编写函数的说明文档。

2023-05-04 00:41:22 72

原创 1640. 能否连接形成数组

给你一个整数数组 arr ,数组中的每个整数 互不相同。另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。思路:以arr数组为标准,在piece中寻找第一位,若没找到,返回false,若找到了,假设为piece[i][0]将arr前进一位,peice[i]也前进一位,若不不相等,直接返回false。因其数组元素互不相同,因此就有一一对应的关系,对于arr中的一个数,首先就可以使用哈希表的find来查找是否存在。

2023-05-03 11:11:39 74

原创 循环数组中元素的遍历

解密后的密码为 [7+1+4, 1+4+5, 4+5+7, 5+7+1]。由于 code 是循环的, code[n-1] 下一个元素是 code[0] ,且 code[0] 前一个元素是 code[n-1]。解释:解密后的密码为 [3+9, 2+3, 4+2, 9+4]。向后遍历,当第k(-1)为变为负数时,(k+n)%n便为数组的n-k(n-1)位。输入:code = [5,7,1,4], k = 3。输入:code = [1,2,3,4], k = 0。输出:[0,0,0,0]

2023-05-03 09:13:58 98

原创 拓扑排序排序入门

因此对于简单题来说,就是对图的遍历加了顺序的要求,在使用dfs或bfs时稍加处理即可。

2023-05-01 15:58:31 82

原创 列表推导式

用一个表达式创建一个有规律的列表或控制一个有规律的列表。

2023-04-30 10:11:48 80

原创 4月29日刷题总结

首先就是新建一个链表(A),比较两个链表(BC),若B链表中的节点值小,先赋给链表A。该方法默认求第k小的。(将下标为k的元素放在正确的位置,而其它的元素并没有排序)自我理解:若a大,则满足bool函数的判断,a放在前面。当然,如果不编写cmp的话,也可对其位置进行处理。其实与sort()中的cmp编写相类似。分析题意即可的其解题思路。2.STL之nth_element。而真正更改位置是只改变确定的位置;第k大==第n-k+1小。1.合并两个有序链表。

2023-04-30 09:10:22 34

原创 python中的类型转换函数

【代码】python中的类型转换函数。

2023-04-30 08:49:22 26

原创 python入门公共方法

start用来设置遍历数据的下标的起始值,默认为0。enumerate(可遍历对象,start=0)

2023-04-30 08:32:15 31

原创 力扣找出数组中的第 K 大整数sort()解法

因为标准库中的sort()函数的第三个cmp函数并没要用this指针参数。而static函数则不需要this指针。因此把cmp的定义改为静态成员函数即可。首先这是string型。因此我们首先比较其长度,在比较其大小。而这个sort()中的cmp的编写就是一大难点。由题可知,只需对原数组进行降序排列即可。就不得不提this了.

2023-04-30 08:29:20 55

原创 学习字符段数

int sumRange(int left, int right) 返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 (即,nums[left] + nums[left + 1], …另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left

2023-04-24 15:37:29 49

原创 堆(优先队列)进阶题

找到和最大的长度为 K 的子序列此式我们每从队列中弹出的数据,经过处理得到的增长率最高)。注意*‘

2023-04-21 22:16:31 42

原创 优先队列简单题

找到和最大的长度为 K 的子序列c++STL库函数优先队列

2023-04-21 19:12:05 75

原创 堆和set集合的相关操作入门题。

堆和set集合的相关操作入门题。无限集中的最小数字K 次增加后的最大乘积

2023-04-21 14:05:23 35

原创 二叉树进阶--

展平二叉搜索树二叉搜索树的范围和所有大于等于节点的值之和三个关于二叉搜索树的简单题

2023-04-21 00:28:59 31

原创 五个简单题熟悉二叉树

将有序数组转换为二叉搜索树二叉树的前序遍历,后序遍历,中序遍历二叉树的最大深度验证二叉树的前序列化

2023-04-20 01:22:48 34

原创 floodfill算法--Space Station Shielding(空间站屏蔽)

floodfill算法入门,Space Station Shielding(空间站屏蔽)

2023-04-18 22:04:51 157

原创 题目一(线性表):

2023-03-21 10:29:31 43

原创 题目二(链表合并)

2023-03-21 10:29:07 31

原创 蛇形填数--蓝桥杯笔记

注意:起点处是向右递增的,即满足(1)的规律,而(2)的规律不满足,我们只需将(1)放在(2)条件的即可。(3)两轴所围成的区域内;横纵坐标之和为偶数,向右上移动,横纵坐标之和为奇数,向左下移动;4.横纵坐标相加为偶数,最大值减去i-1,反之,减去j-1.(i为纵轴。如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。2.坐标以1开始,当数的横纵坐标相加为偶数是,数值向右上递增;当其坐标为奇数时,向右上移动,否者,向下移动;当其坐标为奇数时,向右移动,否者向左下移动。对数字的递增顺序进行观察,

2023-01-24 15:05:05 205

原创 扫雷--蓝桥杯笔记

第 2 行到第 n + 1 行每行包含 m 个整数,相邻整数之间用一个空格分隔。如果对应的整数为 0,表示这一格没有地雷。如果对应的整数为 1,表示这一格有地雷。对于没有地雷的方格,输出这格周围的地雷数量。对于有地雷的方格,输出 9。在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空。请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。输出 n 行,每行 m 个整数,相邻整数之间用空格分隔。定义两个数组,一个用于存储数据,一个用于输出;输入的第一行包含两个整数 n, m。

2023-01-23 19:15:13 174

原创 穿越雷区--蓝桥杯笔记

某坦克需要从 A 区到 B 区去( A,B 区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了 A,B 区,其它区都标了正号或负号分别表示正负能量辐射区。X 星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。个数据,可能是 A,B,+,- 中的某一个,中间用空格分开。A,B 都只出现一次。输出一个整数,表示坦克从 A 区到 B 区的最少移动步数。于‘A’处入栈,‘B’处return;,表示方阵的大小, 4 ≤。

2023-01-23 18:34:45 170

原创 方格分割--蓝桥杯

2.两个图形是一个中心对称图形,因为是分割则对各个方格的的顶点进行分析,中点坐标为(3.3),且裁剪的位置是对称的。试计算: 包括这 3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。1.本题问共有多少种方法了,采用深度优先方法,如若递归到边界,则返回1进行累加;6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。3.旋转对称的属于同一种分割法,递归回来的总数需/4。如下就是三种可行的分割法。

2023-01-23 14:28:04 126

原创 七段码--蓝桥杯

七段码--蓝桥杯小蓝要用七段码数码管来表示一种特殊的文字。深度优先-例题

2023-01-23 12:31:35 342

空空如也

空空如也

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

TA关注的人

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