力扣每日一题Day04
忧虑的度过一天,比起工作一周还令人劳累。
题目描述:
给你一个有序数组 nums
,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
解题代码:
1 | class Solution { |
解读与收获:
此题可以参考昨天的一题,都是采用了快慢指针的思路,不过本题多了一个条件是可以允许元素最多出现两次,在昨天的题目中,我们是用快指针和慢指针前一个元素比较,发现如果一样则表示重复,慢指针所指的位置作为待替换位。今天的题目,我们需要比较慢指针前两个元素和快指针所指元素,如果一样,说明元素数量超过两个,则慢指针为待替换位。
本题提交的时候错了一次,因为没有检测如果数组的元素数量小于等于2(因为两个元素理论上不需要进行操作)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 驴の奇思妙想!
评论