给定一个有序数组,允许每个字符最多重复两次,要求原地移除多余元素并返回新长度。请用双指针实现,并说明时间与空间复杂度。
考察说明
考察双指针技巧、原地数组修改与边界条件处理
回答思路
- 正确理解题目:有序数组且重复不超过2次
- 用两个指针(慢指针记录写入位置,快指针遍历)实现原地修改
- 正确判断何时允许写入:当前字符与慢指针对应的位置比较
- 边界条件:空数组、长度小于等于2的数组
- 返回新长度且不额外使用O(n)空间
- 能分析时间复杂度O(n)和空间复杂度O(1)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。