- 博客(68)
- 问答 (1)
- 收藏
- 关注
原创 力扣hot100三刷
①初始化dp[0]=0;i<=amount;public:while(ans)// 统计1的个数ans>>=1;});dp[i]代表以nums[i]结尾的最大连续子数组和或者nums[i] if dp[i-1]<0;
2026-09-20 22:10:25
148
原创 二刷LeetCode——hot100
其实这道题很简单,因为这道题其实就是寻找数组中等于targte的最小的下标以及最大的下标这道题其实和33很类似,做法基本一致只是这里我们终止条件是左边界:left<nums.size() && nums[left]==target右边界:right>=0 && nums[right]==targetpublic:elsereturn -1;
2026-09-11 22:14:43
158
原创 hot100——动态规划
我们可以将 0-1 背包问题看作一个由 n 轮决策组成的过程,对于每个物体都有不放入和放入两种决策,因此该问题满足决策树模型。每一个物品可以选择放入背包或者不放入背包,假设当前的物品编号是i,以及此时的背包容量是c,那么[i, c]表示当前物品编号是i,背包容量是c,那么定义状态dp[i, c]是前i个物品在容量为c的背包下的最大价值。那么需要求解的是dp[n, cap]。
2026-05-20 19:48:49
399
原创 hot100——图
本题已知一个变量对数组,一个实数值数组,其中变量对数组表示等式左边,而实数值数组表示等式右边的结果;而数组queries则表示等式左边,需要我们根据上述已知的变量对数组以及实数值数组得到这个等式右边的结果。如果不存在就返回-1。本题我们需要用图来做,建立被除数,除数,商的有向图。我们使用邻接表来实现,unordered_map<string, vector<pair<string, double>>> graph;
2026-04-22 21:07:45
240
原创 hot100——树专题
DFS 是(深度优先搜索)的缩写。。对于树的相关题目,我们一般都会想到用递归来解决,因为遍历根节点,根节点的左右子树,和每个子树内部的情况也是一样的,也就是父问题与子问题,然后终止条件就是当的结果为NULL的时候,停止,原地返回,这就是归。
2026-04-21 18:11:18
393
原创 hot100——哈希表
哈希表内部实际上是一个数组,这个数组的每个元素被称为一个“桶”(bucket)。桶的作用是存储实际的数据(键值对)。当你向哈希表插入一个键值对时,哈希函数会计算键的哈希值,然后通过某种方式(比如取模运算)得到该键应该放入的桶的索引(即数组的下标),然后将键值对放入那个桶中。形象比喻桶数组就像一个公寓楼,有编号为 0、1、2、…、N-1 的房间(桶)。哈希函数就是门牌号分配规则:根据住户的身份证号(键)计算出他应该住在哪个房间。
2026-04-14 16:56:49
394
原创 hot100——栈和队列
栈和队列的区别:栈是先进后出/后进先出(LIFO),队列是先进先出(FIFO)。Python 没有专门的栈类,通常使用 列表(list) 来模拟栈,因为列表的 和 操作在末尾进行,时间复杂度 O(1),符合栈的 LIFO 特性。C++C++ 标准库提供了 容器适配器,默认基于 实现,也可指定底层容器(如 、)。需要包含头文件:队列pythonPython 中可以使用 (双端队列)来实现高效队列,因为列表的 是 O(n) 操作,不适合做队列。 的 和 都是 O(1)。
2026-04-11 17:07:27
517
原创 hot100——链表专题
C++ 中利用优先队列(priority_queue)实现最小堆,用来高效地从 k 个有序链表的头节点中每次取出最小值。①定义比较器auto cmp:让编译器自动推断cmp的类型,它是一个函数对象(lambda)。:lambda 表达式,接受两个ListNode*参数,返回bool。:当a的值大于b的值时返回true。在优先队列中,这个比较器定义了“谁优先级更低”。默认是最大堆less<T>比较),即值大的优先级高。当我们传入greater比较()时,就变成了最小堆。
2026-04-09 14:46:17
384
原创 hot100——双指针法专题
0, left):已经排好的 0[left, i):已经排好的 1[i, right]:待处理的元素:已经排好的 2left = 0i = 0。
2026-04-01 17:27:06
407
原创 hot100——二分查找
首先题目中说了,目前我们的数组是非递减顺序排列的数组,其实要求时间复杂度是O(logn),可知该题应该用到二分法。因为target在数组中,可能不止一个与target相等的数值,题目中也要求了返回给定目标值在数组当中的开始位置以及结束位置,所以我们需要找到数组最左边以及最右边和target相等的数值的下标,然后返回对应的下标列表。
2026-03-26 20:35:50
370
原创 hot100——数组专题
见具体就是,对原来的数组,从后往前,从len(nums) - 2开始,找到(这个是相邻的),得到下标i,j;此时的j----> len(nums) -1是降序排列的;随后还是对原数组nums从后往前遍历,;最后,这样就找到了题中所要求的下一个排列。
2026-03-24 15:24:21
346
原创 hot100——位运算专题
我们可以使用 Brian Kernighan 算法进行优化,具体地,该算法可以被描述为这样一个结论:记 f(x) 表示 x 和 x−1 进行与运算所得的结果(即 f(x)=x & (x−1)),那么 f(x) 恰为 x 删去其二进制表示中最右侧的 1 的结果。而偶数中1的个数是和偶数/2之后的数字的1的个数是相同的,偶数的最低位是0,除以2相当于右移1位,相当于抹去最后的一位0,但是1的个数是保持不变的。,得到这两个数字当中二机制位不同的结果,随后遍历整个结果,把位为1的结果的数目给统计出来。
2026-03-23 11:16:23
336
原创 hot100——动态规划
动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和性质的问题。动态规划从较小问题的解,由交叠性质,逐步决策出较大问题的解,它是从f(1)往f(10)方向,往上推求解,所以称为的解法。动态规划有几个典型特征,。如果一个问题,可以把所有可能的答案穷举出来,并且穷举出来后,发现存在重叠子问题,就可以考虑使用动态规划。
2026-03-19 20:16:48
397
原创 hot100——226.翻转二叉树
执行left,进入第三层MaxDepth,此时root==15,root->left == NULL,root->right == NULL;返回最终的root即可。进入第二层MaxDepth,此时的root为9,root->left ==NULL,root->right==NULL;执行right,进入第四层MaxDepth,此时root==NULL,返回0,所以第三层的right == 0;执行left,进入第四层MaxDepth,此时root==NULL,返回0,所以第三层left == 0;
2026-03-18 19:02:24
360
原创 Hot100——739.每日温度
倘若当前数组元素的大小是大于当前栈顶元素的话,则不入栈,因为此时不符合递减栈的要求,需要弹出栈顶元素,直到当前数组元素是小于栈顶元素,满足单调栈的条件,此时求出相应的下标差就是对应的距离。3.i=2,取temperatures[2]=75,75>74,与2一致,弹出栈顶元素,将当前数组元素下标存入堆栈中,因此res[1] = 2 - 1 = 1;4.i=3,取temperatures[3]=71,71<75,当前数组元素大小小于栈顶元素,满足单调递减栈,存入堆栈,此时栈顶元素是3;此时的堆栈:2 3 4。
2026-03-17 16:41:56
381
原创 力扣Hot100——234.回文链表
回文链表的话,就是第一个数和倒数第一个数相同,第二个数和倒数第二个数相同,一次类推,但是链表我们无法直接从最后一个节点开始从后往前推,因此对于判断是不是回文链表,首先我们需要找到链表的中间节点。
2026-03-16 19:33:15
272
原创 Leetcode HOT 100
链表A的头节点headA,链表B的头节点headB,此处我们引入俩个指针,指针A先遍历链表A再遍历链表B,直到首个公共节点;由底至顶进行回溯,当节点p/节点q位于root的左右子树中时,节点root就是最近公共祖先,则向上返回root。说明root的左子树当中不存在节点p/q,右子树当中存在节点p/q,返回right。若c=0,则说明链表A,链表B之间不存在公共节点,此时指针A、B均指向null;说明root的左子树当中存在节点p/q,右子树当中不存在节点p/q,返回left。
2026-03-16 15:32:04
386
原创 Autodl
希望在未来,能够在与AutoDL的旅途中,继续留下一刻刻美好的瞬间,继续见证这我的茁壮成长。同时,也向大家推荐AutoDL,因为AutoDL对于小白而言,使用起来真的很简单,并且操作方便,价格也便宜,同时内部的服务器,GPU规模十分庞大,还提供了十分详尽全面的帮助文档,上手成本低。这一路上,我使用AutoDL,完成许多模型的训练,同时也在AutoDl上完成了我的挑战杯比赛的代码的炼丹。目前已经是研二了,因为之前是做多模态融合,然后从网上看到网友推荐Autodl服务器来炼丹,所以目前是一直用。
2025-09-16 14:13:57
256
原创 detectron2安装遇到问题note: This error originates from a subprocess, and is likely not a problem with pip.
其中我的cuda是11.3,torch是1.11.0,python是3.8.10,torch的安装没有问题,在虚拟环境下可以正确打印出torch的版本,但是在安装这个detectron2的时候一直报这个错误,有哪位大佬在安装的时候遇到过这个问题并且解决了的么?
2025-03-31 17:05:30
535
3
原创 基于毫米波雷达的生命体特征监测
1、可以在多人场景下进行相应的生命体征监测;2、可以继续延伸,室内人员检测与跟踪,人体运动检测都是下一步可以继续深入的部分。最后的最后,有需要源码uu可以单独联系我的哟!!!
2025-01-19 15:09:34
5144
6
原创 代码随想录一刷——二叉树的迭代遍历
对于二叉树的迭代遍历,,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。而在迭代法中我们用栈来实现迭代。
2025-01-06 21:07:15
348
原创 二叉树的递归遍历
根据卡哥的讲解,在递归实现中,我们要确定递归算法的三个要素,每次按照这三个要素来,基本上不会出错。1、确定递归函数的参数和返回值因为要打印出来前/中/后序遍历的数值,所以传入数组参数来存放遍历的数值,除此之外,再无其他参数和返回值。2、确定终止条件当遍历到某一个结点为空时,本层递归结束。3、确定单层递归的逻辑前序遍历:中左右中序遍历:左中右后序遍历:左右中。
2024-12-25 17:00:15
441
原创 二叉树部分基础
n个结点的二叉搜索树的高度是多少呢?对于只有一个根节点的树,高度为1;对于2~3个结点的树,高度为2;对于4~7个结点的树,高度为3;……以此类推,可知n个结点的二叉搜索树的高度为[log2n]+1,其中[]代表取整。对于查询类情况,最好的情况是查询根节点,时间复杂度为O(1),对于最坏情况,查到最底层的叶子结点,时间复杂度为O([log2n]+1)。因此,对于平衡二叉搜索树的查找而言,时间复杂度为O([log2n]+1)==>O(log2n)。
2024-12-24 15:45:13
396
原创 单调队列和优先级队列
在中,在本题中我们需要一个队列,在这个队列中,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。由此我们可能会想到一个大顶堆(优先级队列)来存放这个窗口里的k个数字,这样就可以知道最大的最大值是多少了,但是呢?问题在于这个窗口是移动的,而大顶堆每次只能弹出最大值,我们无法移除其他数值,这样就造成大顶堆维护的不是滑动窗口里面的数值了。所以不能用大顶堆。
2024-12-23 10:33:22
1076
原创 代码随想录一刷——347.前K个高频元素
在C++代码中,有如下问题:1、为什么这个地方时lhs.second > rhs.second????当返回true时,这意味着lhs(左操作数对应的pair)的第二个元素(即频率)大于rhs的第二个元素。按照优先队列的规则,就会把lhs放到堆的下层,rhs放到堆的上层,因为lhs的优先级被判定为低。例如,假设有两个pair元素和(第一个元素只是示意,重点是第二个频率元素),当比较p1和p2时,因为3 > 2),所以p1的优先级被认为低于p2,在小顶堆中p2。
2024-12-19 19:33:08
370
原创 代码随想录一刷——150.逆波兰表达式求值
这道题的解题思路其实和上一道删除字符串中的所有相邻重复项基本一致,这是上一道题是需要弹出消除,而这一道题是遇到运算符号之后弹出后进行相应的运算之后将运算结果再压入栈中。
2024-12-14 14:15:22
279
原创 代码随想录一刷——1047.删除字符串中的所有相邻重复项
在本题中,我们可以使用以下2种方法:用栈来存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。Python(注释部分为正解)C(同样可以运行的部分也是在注释里面,去掉即可)法二:使用双指针,慢指针不断指向最后不重复的字符,而快指针去遍历整个字符串PythonC
2024-12-12 15:41:21
244
原创 代码随想录一刷——20.有效的括号
在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了。字符串遍历完之后,栈是空的,就说明全都匹配了。
2024-12-10 20:29:29
256
原创 雷达信号处理算法:静态杂波滤除(附MATLAB代码和数据)
需要数据的话,可以在评论里面留言,欢迎大家批评指正。方法3:对消(距离压缩后,相邻多普勒维度的数据相减)方法2:距离维度压缩后减均值再进行速度维压缩。方法1:直接2D-FFT后零多普勒维度置0。
2024-12-10 10:31:43
773
原创 代码随想录一刷——225.用队列实现栈
我们用一个队列来实现栈,就是将最后一个元素之前的所有元素全部都重新放到最后一个元素之后,再去弹出第一个元素,即与栈相同。
2024-12-05 19:50:41
202
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅