C++代码:
int i,j=1;
if(nums.size()==0)
{
return false;
}
if(nums.size()==1)
{
return j;
}
else
{
for(i=0;i<nums.size()-1;i++)
{
if(nums[i]!=nums[j]&j<nums.size())
{
nums[i+1]=nums[j];
j++;
if(j>=nums.size())
{
return i+2;
break;
}
}
else
{
j++;
i--;
if(j>=nums.size())
{
return i+2;
break;
}
}
}
if(i==0)
{
return i+1;
}
}
return i+2;
提交结果:
解题思路:
- 先判断数组是否为空,若为空则return 0,再判断数组元素是否唯一,若唯一直接输出数组,否则继续执行程序;
- 利用一个for循环和if语句判断相邻的两个数组元素是否重复,若不重复则依次排列,若重复则不写入并继续写入下一不重复的数组元素;
- i==0是为了防止数组所有元素均为重复元素,程序结束。