思路基本与lc27移除元素相同,但是移除的条件不同,因此只需要更改if判断语句的条件即可。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int slow = 1; //当指针为0,fast - 1会出现越界,所以从1开始
for(int fast = 1;fast < nums.size();fast ++)
{
if(nums[fast - 1] != nums[fast]) //当前项与前一项不相同时执行赋值
{
nums[slow ++] = nums[fast]; //相同时跳过赋值,不同时再赋值,即移除相同元素
}
}
return slow; //慢指针保存删除后数组
}
};