- 博客(19)
- 收藏
- 关注
原创 Vue + Axios + Mock.js 全链路实操:从封装到数据模拟的深度解析
可维护性:模块化架构降低维护成本可测试性:分层设计便于单元测试可扩展性:配置驱动适应需求变化稳定性:完善的错误处理机制高性能:智能缓存与优化策略。
2025-04-03 00:12:49
749
1
原创 This指针与Promise异步编程详解,前端必备
在前端实际运用里面,通过扩展可将其发展为功能完备的请求工具类,适用于复杂前端应用的数据层管理。这里引用Promise官网的类比解释,感兴趣的可以自己去管查看官方文档。:等待所有 Promise 完成。:取最先完成的 Promise。是函数运行时自动生成的一个。
2025-04-02 22:00:50
1009
原创 【码道初阶】进阶必看!双重二分查找+边界处理:Leetcode.4寻找两个正序数组的中位数,细节很多的Hard题
通过二分查找在较短的数组nums1上寻找分割点i,并根据i计算nums2的分割点j(使得左右两边元素个数满足要求)。利用四个关键值()判断分割是否合理。根据总元素个数奇偶性计算中位数。为什么必须确保nums1是较小的数组?保证二分查找时i的范围是0到m,同时能使得计算出的落在[0, n]范围内,避免数组越界。限制二分查找在较小的数组中进行,可以使搜索空间更小,算法效率更高。如果不交换,可能因j的计算出错导致条件判断失败,从而使得算法无法找到正确的分割点,最终得到错误结果或程序崩溃。
2025-02-09 18:04:06
873
原创 【码道初阶】Leetcode540. 有序数组中的单一元素,异或运算在二分查找的优雅实现(附异或运算详解)
条件重构:通过位运算将奇偶位置统一处理模式识别:利用有序性建立的成对规律深入理解数据特征(有序性、重复模式)对算法设计的影响掌握位运算在索引处理中的巧妙应用培养将特殊位置判断转换为统一逻辑的抽象能力这种类型的题目在面试中常见于考察候选人对二分查找变种应用的能力,理解其中的模式识别和索引处理技巧,可以帮助我们更好地应对类似的算法问题,拥有计算机的数学思维也尤其重要。位运算优势:充分利用CPU的硬件特性实现高效计算模式抽象:将复杂的条件判断转化为统一的数学表达对称性利用。
2025-02-06 20:10:45
1065
原创 【码道初阶】二分再秒一道困难题:Leetcode154寻找旋转排序数组中的最小值 II ,不禁感叹证明一个思路错误,有时比找到正确的思路更加困难
通过比较中间值与右边界,算法能高效定位旋转数组的最小值,同时处理重复元素。直接比较左边界会导致逻辑漏洞,尤其在完全升序或复杂旋转场景下失效。右边界比较策略凭借其天然的区间划分优势,成为解决此类问题的可靠方法。
2025-02-05 16:55:02
891
原创 【码道初阶】Leetcode81旋转数组的元素搜索:二分查找在旋转排序数组搜索中的应用——处理重复元素的实现与原理
我们通过巧妙的边界处理策略,在保证正确性的前提下,最大限度地利用了二分查找的效率优势。安全边界跳跃:利用nums[mid]与边界的比较结果,安全地排除不可能区域动态有序判断:根据中间值与边界的比较结果,动态选择搜索方向鲁棒性处理:兼容包含大量重复元素的极端情况信息最大化利用:即使无法确定整体有序性,仍通过局部信息指导搜索渐进式处理:通过逐步缩小问题规模应对复杂情况健壮性优先:在最坏情况下仍能保证正确性,同时优化平均性能。
2025-02-04 22:23:07
915
原创 【码道初阶】Leetcode162数组寻找峰值:二分查找与非严格单调排序数组的收缩判断
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4]。输入:nums = [2,5,6,0,0,1,2], target = 0。输入:nums = [2,5,6,0,0,1,2], target = 3。
2025-02-04 20:03:00
360
原创 【码道初阶】Leetcode34:在排序数组中查找元素的第一个和最后一个位置的二分查找设计
在一个非递减数组中,寻找目标值的起始和结束位置。若不存在,返回[-1, -1]。需在O(log n)时间内完成。
2025-02-04 13:25:25
798
原创 【码道初阶】Leetcode680:验证回文串的双指针速解以及提升思维的感想
将复杂问题拆解为已知简单问题原问题 → 标准回文验证 + 两种可能性分支。通过双指针法结合可能性分支验证,我们可以高效解决允许删除一个字符的回文判断问题。关键思维跃迁将删除操作转化为独立的子问题验证。通过分治思想隔离关注点。掌握这一模式后,可轻松应对各类允许有限次修正的字符串处理问题。
2025-02-03 18:07:42
1043
1
原创 【码道初阶】从2000+ms->0ms 双指针法的最终优化速通Leetcode633
通过将双指针初始化为合理的范围,并动态调整指针位置,该算法将时间复杂度从O©优化至O(√c),完美解决超时问题。核心在于利用有序性减少不必要的计算。通过对比两种代码,相信读者也能对双指针拥有更进一步的理解。
2025-02-03 14:44:29
732
原创 【码道初阶】Floyd判圈法个人总结:快慢双指针判断环形列表(适用Leetcode142)
Floyd判圈算法(又称龟兔赛跑算法)是解决链表环路检测问题的经典方法。它通过(一个快指针每次走两步,一个慢指针每次走一步)来判断链表是否存在环,并在存在环时找到环的起始点。
2025-02-03 00:29:07
605
原创 【码道初阶】挑战Leetcode76Hard最小覆盖子串问题:滑动窗口的优雅实现与深度剖析
通过滑动窗口技术,结合频率数组和计数器的精准控制,该算法能够在 线性时间复杂度 内高效解决最小覆盖子串问题。频率数组的正负值设计:简化了冗余字符的处理。计数器的动态更新:避免全量检查字符频率。边界条件的鲁棒性:通过初始化 min_length 为 -1,明确标识无效状态。此问题不仅考察对滑动窗口的理解,还要求对字符频率管理和边界条件的细致处理,是算法设计中的经典范例。
2025-02-02 22:39:41
933
原创 【码道初阶】Leetcode88一道简单题引发的双指针思考——从逆向双指针到完美合并:剖析两个有序数组合并的经典解法
给定两个按非递减顺序排列的整数数组nums1和nums2,要求将nums2合并到nums1中,并保证合并后的数组仍然有序。
2025-02-02 14:44:49
1163
原创 【码道初阶】由Leetcode665衍生的思考:如何通过最优修改策略(最小局部最优修改方案→整体最优)解决问题
在非递减数列问题中,贪心算法的“局部”范围需包含三个元素(nums[i-2]nums[i-1]nums[i]),以确保每次修改不破坏前序递增性。依赖链分析:修改的影响可能传递到更早的元素。约束完整性:局部范围需覆盖所有关键约束条件。反例验证:通过测试案例验证范围的充分性。贪心算法的核心挑战在于如何定义“局部”。通过分析问题的依赖关系和约束传递性,可以合理划定局部范围,从而设计出高效的贪心策略。这一方法论可推广至其他问题,为算法设计提供普适性指导。
2025-02-02 14:12:44
707
原创 【码道初阶】Leetcode665:非递减数列——仔细思考各种情况下,你的贪心策略是否仍然是最优解
给定一个整数数组nums,最多允许修改1 个元素,判断是否能将其变为非递减数列。非递减数列的定义为:对于所有,满足。通过动态选择修改前一个或当前元素的策略,可以在单次遍历中高效解决问题。前序约束检查:利用nums[i-2]判断修改的安全性。贪心决策:每次修改以最小化对后续的影响。该算法的时间复杂度为O(n),空间复杂度为O(1),适用于大规模数据场景。理解策略选择的逻辑依据,是掌握此类问题的关键。
2025-02-02 14:08:52
726
原创 【码道初阶】深入浅出解析Leetcode406进阶难度题,巧用排序+插入完成贪心解法
本题通过巧妙的排序策略和插入顺序选择,将原本复杂的问题转化为可高效解决的贪心算法问题。处理顺序决定算法可行性迭代器操作的正确使用掌握这种"先排序后插入"的解题范式,能够有效解决一大类需要满足位置约束的算法问题。
2025-02-01 19:12:55
704
原创 【码道初阶】国服ad两种殊途同归的贪心算法详解Leetcode452弓箭射气球问题(与Leetcode435十分相似)
通过按右端点排序和贪心遍历,我们以 O(n log n) 的时间复杂度高效解决了问题。代码简洁且覆盖所有边界条件,体现了贪心算法“局部最优即全局最优”的核心思想。理解排序策略与射箭位置更新的逻辑,是掌握此类区间覆盖问题的关键。
2025-02-01 14:54:22
1224
原创 【码道初阶】Leetcode605:种花问题的贪心算法最优抉择
通过贪心算法,我们可以在一次遍历中高效解决种花问题。尽早种植:最大化利用空间。逻辑短路:安全处理边界条件。提前终止:优化最坏情况性能。贪心算法以简洁的代码实现了高效的结果,是贪心思想的典型应用,与上文更加复杂的代码对比不难看出,合理运用运算符逻辑短路机制,可以合理的概括实现更加广泛的应用场景,并进一步凸显其贪心思想。
2025-01-29 23:39:44
660
原创 [码道初阶]Leetcode 435:贪心算法思路详解
在解决区间调度问题时,贪心算法是一种高效且直观的方法。下面笔者将详细介绍如何利用贪心算法解决“移除最少数量的区间以使剩余区间互不重叠”的问题,并逐步解析其技术实现细节。
2025-01-29 21:37:06
365
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人