一、理解题目
给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
二、解题思路
1.双指针
解释:创建两个指针i,j。分别指向数组的前两个元素,进行循环比较,如果指针元素相同,则指针 j 向后移动:j+1,。如果不同,此时数组指针 i 的后一位等于此时指针 j 所对应的值 nums[i+1]=nums[j],并且指针 i 向后移动:i+1。就这样依次比较,最后返回数组的i+1长度。
如图:
2.代码
代码如下(示例):
public int removeDuplicates