日野弥生:勉強しよう
LeetCode 26 - 删除排序数组中的重复项
发表于2025年01月08日
快慢指针的起始位置是相邻位置,快指针比慢指针快一步开始进入循环。修改数组的条件,很自然地,那就是快慢指针互相所指的数字不相同。但是,要注意区分如果前后指针只是相邻元素的话,及时满足互指数字不同都不需要进行写入。
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size()==1)
return 1;
int slow=0,fast=1;
for(;fast<nums.size();fast++)
{
if(nums[fast]!=nums[slow])
{
if(slow+1!=fast)
{
nums[slow+1]=nums[fast];
slow++;
}
else
{
slow++;
}
}
}
return slow+1;
}
};