/*
@param A: a list of integers
@return : return an integer
将数组分为两段,前一段是已经删除重复元素的数组,后一段是未删除重复元素的数组
用下标 i 指向非重数组最大值(即数组最右边的元素),下标 j 指向重复数组中第一个与非重数组中元素不同的元素
将 j 指向的元素值赋给 i+1 指向的元素,即可增大非重数组
*/
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//局部变量
int num=nums.size();
int i,j;
//数组是否存在
if(num<=0){
return 0;
}
int newsize=1;
while(j<num){
if(nums[i]<nums[j]){
nums[i+1]=nums[j];
i++;
j++;
newsize++;
}
else{
j++;
}
}
return newsize;
}
@param A: a list of integers
@return : return an integer
将数组分为两段,前一段是已经删除重复元素的数组,后一段是未删除重复元素的数组
用下标 i 指向非重数组最大值(即数组最右边的元素),下标 j 指向重复数组中第一个与非重数组中元素不同的元素
将 j 指向的元素值赋给 i+1 指向的元素,即可增大非重数组
*/
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
//局部变量
int num=nums.size();
int i,j;
//数组是否存在
if(num<=0){
return 0;
}
int newsize=1;
while(j<num){
if(nums[i]<nums[j]){
nums[i+1]=nums[j];
i++;
j++;
newsize++;
}
else{
j++;
}
}
return newsize;
}
};