LeetCode 26.删除有序数组中的重复项
Posted 小倪同学 -_-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 26.删除有序数组中的重复项相关的知识,希望对你有一定的参考价值。
题目简介
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
思路分析
创建双指针str1和str2,当str1和str2值相等时,str1向后移动一位,当str1和str2值不相等时,将str2向后移动一位并把str1的值赋值给str2然后将str1向后移动一位
如下图
代码实现
int removeDuplicates(int* nums, int numsSize){
if(numsSize==0)
{
return 0;
}
int str1=0;
int str2=0;
while(str1<numsSize)
{
if(nums[str1]!=nums[str2])
{
str2++;
nums[str2]=nums[str1];
str1++;
}
else
{
str1++;
}
}
return str2+1;
}
以上是关于LeetCode 26.删除有序数组中的重复项的主要内容,如果未能解决你的问题,请参考以下文章