- 博客(354)
- 收藏
- 关注
原创 Leetcode 两数相除
点位说明🚫 不使用* / %用减法和位移代替⚠️ 特判溢出MIN_VALUE / -1 会溢出📈 位运算加速倍增 divisor 快速逼近💡 先判断再左移防越界🔒 使用 long 类型防止中间计算溢出// 处理特殊溢出情况, 当被除数是-2^31且除数是-1时, 此时得到的结果会溢出// 记录结果正负// 使用 long 转换避免溢出,并且将被除数和除数都转换成正数,// 我们利用内层的while循环来快速找到不超过ldividend的最大的ldivisor * 2^k,
2025-03-29 21:38:08
371
原创 Leetcode 背包问题笔记
背包类型外层循环内层循环备注0-1 背包遍历物品容量倒序防止重复选择完全背包遍历物品容量正序允许重复选择多重背包拆成多个 0-1 背包同 0-1 背包或用二进制优化分组背包遍历分组遍历每组内物品 + 容量倒序每组最多选一个。
2025-03-28 15:33:34
340
原创 Leetcode 组合总和 II
回溯(Backtracking)排序 + 去重剪枝优化每个元素只能用一次(控制递归起点)//因为需要去重, 所以首先必须排序//先判断是否满足期望条件return;i++) {//因为题目要求不能有重复元素, 所以需要首先去重//剪枝//之所以用的是 break 而不是 continue,关键点在于已经对 candidates 做了排序。
2025-03-28 13:55:27
382
原创 Leetcode 四数之和
排序数组:便于双指针和去重操作双指针:利用有序数组快速找到两数之和去重处理:防止重复答案(i、j、left、right层层去重)long 类型:规避溢出风险//首先进行排序i < n - 3;i++) { //先确定第一个数//进行去重//然后确定第二个数j < n - 2;j++) {//去重//此时, 前两个数都确定了,然后开始初始化双指针//先计算四数之和//继续去重。
2025-03-27 19:39:11
908
原创 Leetcode 二叉树剪枝
当前节点是 0,并且它的子树中没有 1 —— 满足“整棵子树没有 1”的条件,因此需要剪掉。在后序遍历中,我们是先把左子树和右子树递归“剪干净”后,才处理当前节点。已经是处理完的结果 —— 如果某一子树里没有 1,它就已经是。,而不是判断子节点的值是否为 0。
2025-03-27 18:55:12
357
原创 Leetcode 单词接龙
特性单词接龙(Word Ladder)最小基因变化(Min Mutation)起始 step1(包括起点)0(只计变换次数)变化字符集'a'到'z'共 26 个字母4 种碱基每轮字符数组构建方式每次新建char[]修改原数组char[],需回溯目标不存在的返回值0-1是否需要手动回溯❌ 不需要✅ 需要。
2025-03-27 18:14:45
787
原创 Leetcode 寻找两个正序数组的中位数
条件说明该怎么调nums1左边太多(或太大)i要往左缩,(else 情况)nums1左边太少(或太小)i要往右扩,满足找到了合法划分直接 return 中位数。
2025-03-27 15:15:57
989
原创 Leetcode 最小基因变化
java solution:BFS 算法好的,我们来这段 Java 代码,理解它的。这其实是一个经典的,问题背景是基因变换,但本质和图上的最短路径查找非常类似。
2025-03-26 22:16:28
527
原创 Leetcode 二进制求和
双指针思想:从两个字符串的末尾向前遍历。模拟竖式加法:一位一位加,处理进位。边界处理:长度不等时自动补零,进位单独判断。空间优化:用构建字符串效率高。
2025-03-26 16:26:17
345
原创 Leetcode 188 买卖股票的最佳时机 Ⅳ
条件含义处理方法k < n/2有限次交易限制有效用动态规划k >= n/2交易次数比时间还多,限制无意义贪心,等价于无限次交易问题。
2025-03-26 15:35:24
766
原创 Leetcode 不同路径 ||
(Dynamic Programming,DP)问题,核心思想是利用。来记录到达每个位置的路径数,若某个位置有障碍物,则路径数为。来计算从起点到终点的不同路径数量,同时考虑障碍物的影响。但路径中可能会有障碍物(值为。的所有不同路径数,最终返回。移动,目标是到达右下角。
2025-03-17 16:57:25
417
原创 Leetcode 二叉搜索树迭代器
依次获取 BST 中的元素,并且始终按照。但这样一次性就遍历完整棵树,,而不是一次性读完所有内容!这样,你可以像读小说一样。
2025-03-04 19:58:18
442
原创 Leetcode 随机链表的复制
通过在原链表中插入新节点并逐步分离来完成复制。这样,我们就高效地复制了链表,并且保证。指针可能指向任意位置,我们利用。指针可能指向任意节点或者。)的情况下完成复制,我们采用。为了在不使用额外空间(如。综合下来,时间复杂度是。
2025-03-04 14:20:26
396
原创 Leetcode K个一组翻转链表
pre 始终指向下一个待翻转的节点,index 在一开始是待翻转的节点,在翻转之后,新的 head 节点需要更新,然后 index 再返回去翻转下一个节点。这样每次逆时针翻转一个节点,直至翻转k个节点之后,由翻转下一组节点,双指针法,java solution。
2025-02-22 13:47:48
227
原创 关于skip connection位置特征增强模块的通道降维策略的比较
方式 A(先不降维,后续统一降维)能够在增强特征时保留更多高层次信息,这对于需要较强感受野和上下文信息的任务(如COD、医学图像分割)会更有优势。) 进行降维,这种策略有助于更好地结合局部与全局特征,使得模型更适合 Camouflaged Object Detection 任务。方式 B(直接降维)更加轻量,适合计算受限的应用场景(如嵌入式设备或实时推理)。选择了方式 A,是为了在特征增强阶段保留更多信息,随后通过。先进行通道注意力增强,再降维,从而保留重要的通道信息。
2025-02-13 15:08:33
622
原创 FLOPs和模型参数量
对于大多数现代推理场景,FLOPs对推理速度的影响更大,但如果模型的参数量超出设备的内存/显存容量,参数量也可能成为限制推理速度的关键因素。优化模型时,优先减少FLOPs,同时注意避免模型过大。算力资源允许的情况下,FLOPs越小,计算越快在设备算力足够的情况下,推理速度的瓶颈主要由FLOPs决定,因为FLOPs直接反映了模型需要完成的计算量。减少FLOPs(比如通过模型剪枝、量化、或更高效的架构设计)可以有效提升推理速度。
2025-01-26 18:19:21
1129
原创 使用IEEEtran.cls的latex模板时,subcaption宏包和Figure Caption冲突的解决方法
在开头添加这个代码片段重新设置图片的caption格式。
2024-12-25 23:00:43
271
原创 overleaf中出现TeX capacity exceeded PDF object stream buffer=5000000的原因和解决方案
在插入pdf 配图后,编译出错提示信息如图,很可能的一个原因是pdf文件大小太大了,最好压缩一下,压缩到1MB以内。
2024-12-25 11:28:40
1035
原创 使用IEEEtran.cls的latex模板时,subcaption宏包和Table Caption冲突的解决方法
增加这个代码片段,来重新设置Table caption的风格。
2024-12-24 21:35:52
190
原创 Leetcode 串联所有单词的子串
中所有单词的串联,并且每个单词只能使用一次,且顺序可以任意。182 个测试用例通过了 181 个,被全 a 的测试用例卡住了(超时),通过滑动窗口和哈希表的结合,这个算法能够高效解决题目要求。中找到所有子串,这些子串是字符串数组。这道题目要求我们在字符串。
2024-12-21 22:41:57
786
原创 Leetcode 三角形最小路径和
这段代码通过动态规划的思想,从底向上逐层计算路径和,用一个一维数组优化了空间开销,避免了重复计算,具有较高的效率,适用于求解此类逐层递归累加的问题。java 实现。
2024-12-19 15:44:11
829
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人