所用方法:双指针
B站视频讲解:https://www.bilibili.com/video/av76144825?from=search&seid=7600986545073430717
C++实现:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//先检查nums数组是否为空
if(nums.size()==0){
return 0;
}
//双指针法
int i=0,j; //定义两个变量即表示双指针
//,指针i总是在j前面,指针j用来遍历数组nums中从第2个元素开始的所有元素,
for(int j = 1;j<nums.size();j++){
if(nums[j]!=nums[i]){
i++;
nums[i]=nums[j];
}
}
//返回无重复元素的个数,注意,i后面还有一个跟i不相等的j,所以最后的元素个数是i+1,而不是i
return i+1;
}
};