
LeetCode
文章平均质量分 73
LuckyLay
这个作者很懒,什么都没留下…
展开
-
LeetCode算法题(Go语言实现)_32
三段式处理:将问题分解为链表分割、反转、求和的独立模块(网页2、4)空间优化:通过原地反转避免数组存储,实现O(1)空间复杂度对称访问机制:利用链表反转实现自然对称遍历(网页5)原创 2025-04-05 20:15:00 · 498 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_31
三指针黄金法则:prev/current/nextTemp组合实现高效反转数学归纳证明:局部反转的正确性保证全局正确。原创 2025-04-05 19:30:00 · 436 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_30
链式跳跃:通过直接跳过偶数节点,避免多次遍历数学归纳法证明:奇数节点的下一个节点总是偶数节点的下一个节点,确保正确性。原创 2025-04-04 22:32:36 · 360 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_29
单次遍历优化:相比两次遍历法(先计算长度再删除),快慢指针法将时间复杂度优化至严格O(n)前驱动态维护:通过pre指针的同步更新,避免删除时二次遍历查找前驱节点。原创 2025-04-04 22:26:24 · 498 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_22
集合存在性验证:通过字符存在位图快速排除异构字符集频率可交换性:排序操作将离散频率分布转化为可比序列。原创 2025-03-31 21:48:57 · 971 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_21
数学本质:集合论中的单射关系验证(频率集合与原集合大小相等)工程优化:利用哈希表与集合的 O(1) 查询特性实现高效判断扩展应用词频分析:验证文本中单词出现次数的唯一性数据校验:检测日志中事件发生次数的唯一性流式处理:结合布隆过滤器处理大规模数据流。原创 2025-03-31 21:45:03 · 531 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_20
数学本质:集合运算的差集操作(A - B 和 B - A)工程优化:哈希表去重与存在性检查的 O(1) 时间复杂度优势扩展应用多数组对比:扩展至 N 个数组的差异分析流式处理:使用布隆过滤器处理超大数据流数据同步:识别数据库表之间的差异记录。原创 2025-03-30 22:01:55 · 556 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_19
数学本质:利用总和公式快速判断平衡点工程优化:通过一次遍历完成总和计算和动态调整,避免内存分配扩展应用二维平衡点:在矩阵中寻找行列和相等的坐标多删除场景:允许删除多个元素时的最长子数组问题动态更新:流式数据中实时维护左右和(需结合树状数组)原创 2025-03-30 21:58:15 · 404 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_18
算法优势:通过动态规划思想将空间复杂度优化至常数级别,避免存储完整海拔序列工程价值:适用于实时海拔监控系统,如骑行导航软件中的高程提示功能扩展应用地形高程分析(结合GPS轨迹数据)运动体能消耗计算(基于累计爬升高度)三维路径渲染优化(快速定位最高点)原创 2025-03-29 09:16:53 · 777 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_17
核心创新:将删除操作转化为允许1个0的窗口问题,通过动态边界调整避免重复计算数学证明:最大有效窗口长度L满足L ≤ n-1,且必然覆盖最优解的可能性优化亮点整数运算避免浮点精度问题全1数组的特殊处理提升边界条件鲁棒性应用扩展网络传输质量控制(允许少量丢包)DNA序列分析(寻找保守片段)用户行为建模(连续活跃天数统计)原创 2025-03-29 09:08:48 · 408 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_16
窗口动态调整:通过zeroCnt计数器的状态机式管理,实现线性时间复杂度无效位置跳跃:当窗口收缩时,左指针可直接跳转到首个无效0的后一位,减少冗余计算。原创 2025-03-28 21:00:00 · 346 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_15
增量计算:通过窗口两端操作将时间复杂度从O(nk)优化到O(n)位运算优化:将元音判断转换为位掩码操作(如。原创 2025-03-28 20:00:00 · 389 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_07
•核心逻辑:通过左右分解避免重复计算,两次遍历实现高效求解。•优化关键:复用输出数组存储中间结果,空间复杂度从O(n)优化至O(1)。•适用场景:类似“利用前后缀信息”的问题(如统计前后缀最大值、求和等)。原创 2025-03-21 19:00:00 · 706 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_11
核心逻辑:双指针法通过同步遍历快速判断子序列关系,时间复杂度为O(n);预处理方法通过空间换时间优化高频查询场景。优化点双指针法的贪心策略确保匹配位置的最左对齐,避免回溯。预处理方法利用哈希表+二分查找将单次查询复杂度降为O(mlogk)。应用场景:实时数据流中的子序列匹配(如日志分析)、高频查询系统设计(如API服务)。原创 2025-03-26 19:30:00 · 863 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_14
核心创新:将传统O(nk)暴力法优化为O(n)线性算法,通过窗口滑动实现高效增量计算数学证明:设数组长度为n,滑动窗口共进行(n-k)次移动,完整覆盖所有可能子数组优化亮点消除重复计算,每次窗口更新仅需两次算术运算整数运算避免浮点精度损失,最后统一转换结果适用场景:实时数据流分析、大规模时序数据处理等需要高效计算的场景。原创 2025-03-27 20:30:00 · 880 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_12
核心创新:通过移动短板的策略,在宽度递减的过程中寻找高度增益的可能性数学证明设最优解为(i,j),双指针法必会遍历到该解。若i先被移动,则必有j'为当时右指针),这与最优解矛盾应用场景:实时水位监测系统、图形学中的最大区域计算等。原创 2025-03-26 20:00:00 · 471 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_10
•核心创新:通过双指针动态分区实现零元素归位,类似快速排序的partition操作•关键优势单次遍历完成操作完美保持非零元素原始顺序支持任意数字类型(正负整数、浮点数)•数学证明设数组含k个非零元素,经过n次遍历后:• 前k个位置必定存储原始非零元素• 后n-k个位置自动填充零元素•应用场景数据清洗、内存压缩、实时数据处理等需要高效原地操作的场景。原创 2025-03-24 20:00:00 · 307 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_09
核心创新:通过读写指针同步推进,实现"边读取边写入"的原地压缩关键技巧内层循环快速统计连续字符数数字转字符串实现多位数拆分直接覆盖原数组避免额外空间适用场景实时数据流处理、嵌入式设备存储优化等需要严格控制内存的场景数学证明该算法能保证压缩后的字符串长度始终≤原数组长度(由题目条件保证)原创 2025-03-24 19:00:00 · 310 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_08
•核心优势:贪心算法以O(1)空间实现高效判断,通过维护最小候选值降低后续匹配难度。•关键证明:若存在递增三元组,则在遍历过程中一定会被贪心策略捕获。即使first更新到较后位置,已记录的second仍隐含前面存在更小值。•适用场景:适用于需要高效检测递增模式的场景,如实时数据流分析。原创 2025-03-21 19:30:00 · 729 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_06
•核心逻辑:分割→反转→拼接,直接利用标准库简化代码。•关键优化自动处理空格,避免手动遍历。•适用场景:类似“按规则重组字符串”的问题可参考此思路。原创 2025-03-19 19:24:08 · 319 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_05
•核心逻辑:双指针法高效定位元音并交换,确保时间复杂度为O(n)。•大小写处理:通过哈希集合统一判断大小写元音。•适用场景:类似“对称交换”或“特定元素重排”问题可参考此思路。原创 2025-03-19 19:08:57 · 582 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_04
•核心逻辑:贪心遍历,及时跳过不可种位置。•优化点:无需修改原数组,仅需判断条件并计数。•适用场景:类似“间隔放置”或“最大化覆盖”问题可借鉴此思路。原创 2025-03-18 21:21:20 · 323 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_03
•核心逻辑:通过两次遍历快速判断每个孩子是否能成为最大值。•优化点:仅需比较原始最大值,无需动态计算其他孩子的当前值。•适用场景:类似“比较静态条件”的问题可借鉴此思路。原创 2025-03-18 21:10:14 · 474 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_02
利用字符串拼接的对称性验证替代显式重复检查,将时间复杂度从。:类似问题如“重复子字符串模式”均可借鉴此思路。:通过数学性质快速缩小候选范围,避免暴力枚举。自身连接 1 次或多次)时,我们才认定 “(验证后直接截取)。原创 2025-03-17 20:00:00 · 405 阅读 · 0 评论 -
LeetCode算法题(Go语言实现)_01
给你两个字符串 word1 和 word2。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。:若某字符串未遍历完,直接将其剩余部分追加到结果末尾。,交替将字符添加到结果中,直到其中一个字符串遍历完。高效拼接字符串(类似 Java 的。返回 合并后的字符串。直接截取剩余子串追加。,存储合并后的字符串。原创 2025-03-17 19:30:00 · 349 阅读 · 0 评论