自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划——最长上升子序列模型

动态规划——最长上升子序列模型

2024-03-25 08:16:59 969

原创 动态规划——数字三角形模型

即便这条路径是最优解也有另一条最优解和这个路径和一样,但是我们只需要输出路径和就可以了,最优解路径有可能是有相交点的,但是也有另一个最优解没有相交点,那么我们输出的路径和肯定可以是一条没有相交点的最优解。换言之,第一次走的时候有可能有好几条路径都是第一次的解,而你分开走只能选择其中的一条。如果两个点相交,这个点的值只能加一次,然而我们肯定能找到一条绕过这个点走到下个点的路径,这条路径一定是大于之前相交路径的。,而你不确定的是第一次同样是最优解而未被你选择的情况下第二次的值会不会比你已经得出的答案要大。

2024-03-23 00:32:41 578

原创 高度平衡树(AVL树)的常用操作

高度平衡树(AVL树)的常用操作

2024-03-11 23:34:50 844 1

原创 二叉查找树的常用操作

二叉查找树的常用操作

2024-03-11 08:01:16 454

原创 利用Lambda表达式实现vector中pair/结构体的排序

若想要更改其排序规则,可以考虑使用自定义。更多的,结构体的自定义排序也可以采用。与以下代码完全等价。的大小来排序,对应的。

2024-01-16 23:33:37 574

原创 Typora使用教程

2023-11-16 07:49:30 359

原创 100、相同的树

【代码】100、相同的树。

2023-10-16 12:41:38 124

原创 404、左叶子之和

【代码】404、左叶子之和。

2023-10-16 12:38:01 160

原创 226、翻转二叉树

∴从叶结点开始,自底向上逐步翻转。递归出口是叶结点的下一层节点。不能只是交换节点的数据值,而是要把整个节点进行交换。让左子树是翻转后的右子树,右子树是翻转后的左子树。

2023-10-16 11:37:35 91

原创 2. 验证1101序列(Mealy)

个触发器为能解决所有问题的通用解法,那么对于具体问题,我们能否使用更少的触发器实现呢?型电路的特点是现态即输出,意思是只有现态影响输出,输入只影响状态转移。将最后一个always的条件改成*不仅与现态有关,还与输入有关。

2023-10-16 00:25:08 424

原创 1、验证1101序列(Moore)

注意:如果状态转移方程不显然,则需严格按照设计状态-状态化简-状态转移真值表-状态转移方程过程进行来得出转移方程,相关内容在数电-同步时序电路。用使用状态机验证1101序列,注意:允许重复子序列。触发器(很好理解,最多的情况就是储存全部信息,每位一个。用Moore型状态机验证1101序列。: D触发器灵活得出状态转移方程。位序列进行检测,则最多需要。以四位为例,于是有D触发器。

2023-10-15 23:09:40 866

原创 203.移除链表元素

【代码】203.移除链表元素。

2023-09-18 14:52:53 37

原创 21.合并两个有序链表

这个代码的格式有点像归并排序(双指针)

2023-09-18 14:47:56 39

原创 42.栈的压入、弹出序列

本题相较于Leetcode 946,需要额外判断一下两个序列的长度是否相等。若不相等,则返回false;

2023-09-17 16:44:16 66

原创 946.验证栈序列

✓ 否则,把入栈序列的元素逐个压栈,直至栈顶等于。扫描出栈序列,对当前扫描到的元素。, 符合预期,继续扫描序列b.✓ 若当前栈顶元素等于。

2023-09-17 16:42:01 104

原创 150.逆波兰表达式求值

2023-09-17 15:16:42 64

原创 P2239 [NOIP2014 普及组] 螺旋矩阵

之间的关系,然后直接输出。

2023-09-16 16:20:58 52

转载 682.棒球比赛

那么访问数组的后两个得分,将两个得分之和加到总得分,并且将两个得分之和入栈。,那么访问数组的最后一个得分,将总得分减去该得分,并且将该得分出栈。如果操作是整数,那么将该整数加到总得分,并且将该整数入栈。,那么访问数组的最后一个得分,将得分乘以。加到总得分,并且将得分乘以。使用变长数组对栈进行模拟。函数用于将字符串转换为。型整数,若返回值超过。

2023-08-25 09:17:32 33

转载 219.存在重复元素 ll

【代码】219.存在重复元素 ll。

2023-08-25 09:05:58 42

转载 896.单调数列

遍历两次数组,分别判断其是否为单调递增或单调递减。既不是单调递增的,也不是单调递减的。

2023-08-20 15:36:10 33

转载 66.加一

【代码】66.加一。

2023-08-20 15:30:39 30

转载 217.存在重复元素

在对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中。因此,我们可以扫描已排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素。对于数组中每个元素,我们将它插入到哈希表中。如果插入一个元素时发现该元素已经存在于哈希表中,则说明存在重复的元素。

2023-08-20 15:14:26 34

转载 1260.二维网格迁移

每次迁移操作都相当于将该一维数组向右循环移动一次,那么。看到二维数组的变换时,应该想到将其一维展开!按顺序拼接而成的一维数组,那么元素。分别为网格的行列数,我们将网格。在该一维数组的下标变为。想象成由多个一维数组。在该一维数组的下标为。次迁移操作之后,元素。

2023-08-20 09:27:31 38

转载 1266.访问所有点的最小时间

对于以下三种情况,我们可以分别计算出从。可以发现,对于任意一种情况,从。,设它们横坐标距离之差为。之间的切比雪夫距离。

2023-08-20 09:17:16 31

转载 1337.矩阵中战斗力最弱的K行

方法一、使用vector<pair<int, int>>排序。方法二、二维vector直接sort排序。对二维vector使用。),插入元素时推荐使用。排序时,系统会默认将。

2023-08-19 22:02:25 35

转载 812.最大三角形面积

枚举所有的三角形,然后计算三角形的面积并找出最大的三角形面积。设三角形三个顶点的坐标为。

2023-08-18 21:15:11 35

转载 73.矩阵置零

用两个标记数组分别记录每一行和每一列是否有零出现。,那么就将该元素所在的行和列所对应标记数组的位置置为。最后我们再次遍历该数组,用标记数组更新原数组即可。具体地,我们首先遍历该数组一次,如果某个元素为。

2023-08-18 10:58:24 88

转载 67.二进制求和

直到和长的那个一样长,然后从高位向低位遍历,对应位置的答案按照顺序存入答案字符串内,最终将答案串反转。这里的代码给出第一种的实现。注意,为了让各个位置对齐,你可以先反转这个代表二进制数字的字符串,然后低下标对应低位,高下标对应高位。我们可以借鉴「列竖式」的方法,末尾对齐,逐位相加。在十进制的计算中「逢十进一」,二进制中我们需要「逢二进一」。的最高位不为 000,则将最高位添加到计算结果的末尾。次,从最低位开始遍历。表示上一个位置的进位,初始值为。记当前位置对其的两个位为。重复上述步骤,直到数字。

2023-08-17 21:51:38 35

转载 50. Pow(x, n)

当指数n为负数时,我们可以计算x−n再取倒数得到结果,因此我们只需要考虑n为自然数的情况。

2023-08-17 21:14:51 25

转载 500.键盘行

遍历字符串时,统一将大写字母转化为小写字母方便计算。,然后检测字符串中所有字符对应的行号是否相同。我们可以预处理计算出每个字符对应的行号。为每一个英文字母标记其对应键盘上的行号。

2023-08-16 22:05:17 28

转载 1207.独一无二的出现次数

首先使用哈希表记录每个数字的出现次数;随后再利用新的哈希表,统计不同的出现次数的数目。如果不同的出现次数的数目等于不同数字的数目,则返回。

2023-08-16 12:52:32 29

转载 1403. 非递增顺序的最小子序列

因此,我们应尽量保证取出的元素尽可能的大,才能满足取出的元素尽可能的少且元素之和尽可能的大,因此我们按照从大到小的顺序依次从原始数组中取出数据,直到取出的数据之和。如果仍然有多个解决方案,则返回。“如果存在多个解决方案,只需返回。大于数组中剩余的元素之和为止。

2023-08-15 23:25:11 27

转载 1413.逐步求和得到正数最小值

只需保证累加和的最小值。

2023-08-15 10:33:30 42

转载 1582.二进制矩阵中的特殊位置

枚举每一个位置,然后按照特殊位置的定义来判断该位置是否满足要求,又因为矩阵中的每一个元素只能为。一行/列只有一个1 <==> 该行/列之和为1。预处理出每一行和列的和来快速的得到每一行和列中的。

2023-08-15 10:26:57 26

原创 accumulate函数的简单应用

accumulate函数是C++ numeric库中的一个函数,主要用来对指定范围内元素求和,但也自行指定一些其他操作,如范围内所有元素相乘、相除等。若不指定第四个参数,则默认对范围内的元素进行累加操作。函数共有四个参数,其中前三个为必须,第四个为非必需。INT_MIN和INT_MAX定义在。中,且INT_MAX为。

2023-08-12 22:37:45 301

转载 263.丑数

不包含其他质因数,是丑数;是否满足上述形式,可以对。包含其他质因数,不是丑数。方法: 数学构造。和负整数一定不是丑数。

2023-08-12 20:35:11 27

转载 326. 3的幂

与方法一不同的是,这里需要特殊判断。我们还可以使用一种较为取巧的做法。,可以直接提前判断该情况并返回。方法二、判断是否为最大。位有符号整数的范围内,最大的。也可以进行试除,因为负数或。

2023-08-12 20:27:28 33

转载 231. 2的幂

提取出来,再判断剩余的数值是否为。因此我们可以考虑使用位运算,将。该位运算技巧可以直接获取。方法二、判断是否为最大。位有符号整数的范围内,最大的。的二进制表示中最低位的那个。下面介绍两种常见的与「该位运算技巧可以直接将。的二进制表示中仅包含。二进制表示的最低位的。」相关的位运算技巧。

2023-08-12 20:13:06 29

原创 P1024 一元三次方程求解

也就是说当区间的两个端点的函数值异号时区间内一定有一个解,同号时一定没有解。那么我们可以枚举互相不重叠的每一个长度为。的区间,在区间内进行二分查找。因为区间很大,所以可以二分。范围内,两个根的差的绝对值。,保证了每一个大小为。

2023-08-12 15:45:37 150

转载 242.有效的字母异位词

分别排序,看排序后的字符串是否相等即可判断。个小写字母,因此我们可以维护一个长度为。中字符出现的频次,然后遍历字符串。方法一较为巧妙,值得学习。中对应的频次,如果出现。字符串长度的判断,易漏。因此我们可以对字符串。本题需要注意的是对于。

2023-08-11 22:02:36 53

空空如也

空空如也

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

TA关注的人

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