题2:删除排序数组中的重复项

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;

提交结果
在这里插入图片描述
解题思路

  1. 先判断数组是否为空,若为空则return 0,再判断数组元素是否唯一,若唯一直接输出数组,否则继续执行程序;
  2. 利用一个for循环和if语句判断相邻的两个数组元素是否重复,若不重复则依次排列,若重复则不写入并继续写入下一不重复的数组元素;
  3. i==0是为了防止数组所有元素均为重复元素,程序结束。
发布了47 篇原创文章 · 获赞 0 · 访问量 758

猜你喜欢

转载自blog.csdn.net/ly521_/article/details/104466632