其他分享
首页 > 其他分享> > 删除有序数组中的重复项

删除有序数组中的重复项

作者:互联网

一,具体思路

利用双指针方法解决;

申请两个变量,p=0,q=1;

p指向第一个数,q指向第二个数;

当p指向的数等于q指向的数,q++;

当p指向的数不等于q指向的数

令q指向的数=p+1;此时p++,q++;

循环直到p<数组长度

 

二,代码实现

 

int removeDuplicates(int* nums, int numsSize){
if(nums==NULL||numsSize==0)  //判断数组地址不为空,并且数组规格不为零
return 0;
 int p=0;
 int q=1;
 while(p<numsSize)
 {
     if(nums[p]!=nums[q])   //如果p和q指向的元素不相等,将q指向的元素指到p+1,此时相等的元素留下,p的元素也会留下,构成新数组
     {
         nums[p+1]=nums[q];
         p++;
     }
     q++;
 }
 return p+1;
}

 

标签:numsSize,删除,指向,nums,int,数组,++,有序
来源: https://www.cnblogs.com/etta-7/p/15776623.html