- 博客(6)
- 收藏
- 关注
原创 力扣面试经典150题——189.轮转数组
摘要:该问题要求将整数数组元素向右轮转k个位置。示例显示,当k=3时,数组[1,2,3,4,5,6,7]变为[5,6,7,1,2,3,4]。解决思路采用三次翻转法:先整体翻转数组,再分别翻转前k个元素和剩余元素,实现空间复杂度O(1)的原位操作。该方法通过数学关系有效完成元素轮转,适用于大规模数组。
2025-08-25 11:13:35
414
原创 力扣经典面试150题--169.多数元素
摘要:该问题要求找出数组中出现次数超过一半的元素。可通过"摩尔投票法"高效解决:初始化候选元素和计数器,遍历数组时相同元素则计数加1,不同则减1,当计数器归零时更新候选元素。该方法时间复杂度O(n),空间复杂度O(1)。示例代码展示了该算法的实现过程,适用于保证存在多数元素的情况。
2025-08-22 09:17:11
464
原创 力扣面试经典150题--80. 删除有序数组中的重复项 II
本文介绍了一种原地删除有序数组中重复元素的方法,要求每个元素最多出现两次。解决方案采用双指针技术:快指针遍历数组,慢指针标记有效区域末尾。核心逻辑是比较当前元素与慢指针前两个位置的元素,不同则保留。该算法时间复杂度O(n),空间复杂度O(1),适用于已排序数组的高效去重处理。通过索引控制和元素比较,确保结果数组满足要求,最后返回新数组长度。
2025-08-21 10:44:01
731
原创 力扣面试经典150题——26.删除有序数组中的重复项
本文介绍了一种原地删除有序数组中重复元素的算法。给定一个非严格递增排列的数组,要求返回去重后的数组长度,并将唯一元素保存在数组前部。算法使用哈希数组标记已出现元素,将未重复元素存入临时数组后复制回原数组。示例显示输入[1,1,2]输出2且nums变为[1,2,_]。该解法时间复杂度O(n),空间复杂度O(n),适用于元素范围有限的情况。作者指出由于数组有序的特性,可能存在更优解法。
2025-08-20 10:23:44
420
原创 力扣经典面试150题——27.移除元素
摘要: 题目要求原地移除数组中所有等于给定值val的元素,并返回剩余元素的数量。解决方案通过遍历数组,将匹配元素标记为-1,统计相同值数量,然后构建新数组保留有效元素并覆盖原数组。最终返回非val元素的数量k,并确保数组前k位为有效元素(顺序不限)。示例演示了输入输出格式及处理逻辑。核心思路:标记+重构数组,时间复杂度O(n),空间复杂度O(n)。
2025-08-19 17:50:12
900
原创 力扣经典面试150题——88.合并两个有序数组
本文介绍了合并两个有序数组的算法。给定两个非递减排列的数组nums1和nums2,其中nums1预留了足够空间,要求将nums2合并到nums1中并保持有序。采用双指针法,比较两个数组元素并逐个选择较小值存入临时数组,最后将剩余元素追加。时间复杂度为O(m+n)。示例代码展示了具体实现过程,包括边界条件处理。该解法高效且直观,适用于各类有序数组合并场景。
2025-08-19 16:56:00
489
空空如也
鸿蒙开发如何创建虚拟屏?
2025-07-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅