c语言实现 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

思路:

1.j=1,因为j=0,i=0时就是一个数没必要比较。

2.++i的原因是,nums[0]是第一个元素不需要改变,需要改变长度的范围是nums[1]到nums[numSize]。++i执行结果的范围是1到numSize。

3.return i+1;的原因是nums[i]是从0开始的,所以返回值加1才等于数组的长度。

int removeDuplicates(int* nums, int numsSize){

    int i=0,j;

   

    if(numsSize==0)

    return 0;

    else

    {

        for(j=1;j<numsSize;j++)

        {

            if(nums[j]!=nums[i])

            nums[++i]=nums[j];


 

        }

 

        return i+1;

    }

    

}


版权声明:本文为lzalxy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。