思路:使用双指针i、j,i为慢指针,j为快指针,判断nums[j]是否等于nums[i],若相等,则继续加j,若不等,则令nums[i] = nums[j],直到j到达数组末尾。
// c++
class Solution {
public:int removeDuplicates(vector<int>& nums)
{
if(nums.size() == 0)
return 0;
int i, j;
i = 0;
for(j = 1; j < nums.size(); j++)
{
if(nums[i] != nums[j])
{
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
};
// c#
public class Solution {
public int RemoveDuplicates(int[] nums)
{
if(nums.Length == 0)
{
return 0;
}
int i, j;
i = 0;
for(j = 1; j < nums.Length; j++)
{
if(nums[i] != nums[j])
{
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
}