提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本文教你如何在时间复杂度为o(N)空间复杂度为o(1)的情况下删除有序数组中的重复项
提示:以下是本篇文章正文内容,下面案例可供参考
一、删除有序数组中的重复项
示例如下:
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
二、使用步骤
代码如下(示例):
int removeDuplicates(int* nums, int numsSize){
int*p1=nums;
int*p2=nums;
int i;
for(i=0;i<numsSize;i++)
{
if(*p1==*p2)
{
;
}
else
{
*++p2=*p1;
}
p1++;
}
return p2-nums+1;
}
p1每移动一次就判断一次,看看p1和*p2是否相等,如果不相等就让