解题思路:
留意题目是升序数组,也就是有序的。
要求原地删除,所有不能新建数组等操作。
利用快慢指针的技巧。
当fast指针发现不重复元素的时候,慢指针向前移动一步,并且把不重复的元素赋值给slow指针用于更新数组。
再试一下链表的删除重复元素,原理一样
83. 删除排序链表中的重复元素
public int removeDuplicates(int[] nums) {
if (nums.length == 0){
return 0;
}
int slow = 0, fast = 0;
while(fast < nums.length){
if(nums[fast] != nums[slow]){
slow++;
nums[slow] = nums[fast];
}
fast++;
}
return slow + 1;
}