80. 删除有序数组中的重复项 II - 力扣(LeetCode) (leetcode-cn.com)
实现这道题有一个简单版本,目的是N个重复的数只留下一个,建议了解这个简单版后再看这篇文章;
改成两个其实也”很好解决“,思路是双指针算法,具体步骤如下:
1:i代表往前走的指针,j为预定指针,ne记录最近一次满足nums[i]!=nums[i+1]的i位置;
2:如果发现nums[i]!=nums[i+1]的情况,则判断i-ne+1>=2是否成立,如果成立则让j走两步,否则走一步。
如此循环当i 注意,这里的在满足nums[i]!=nums[i+1]时i与ne下标围成的区间刚好时一片连续相等的区间。 下面是具体代码 class Solution {public: int unique(vector



