删除有序数组中的重复项
作者:互联网
一,具体思路
利用双指针方法解决;
申请两个变量,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