删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
// 双指针法
public int removeDuplicates(int[] nums) {
int fastPointer ,slowpointer ;
fastPointer = 1 ;
slowpointer = 1 ;
int length = nums.length ;
for (fastPointer=1;fastPointer<length;fastPointer++){
if (nums[fastPointer-1]!=nums[fastPointer]){
nums[slowpointer++] = nums[fastPointer] ;
}
}
return slowpointer ;
}
描述:快指针负责向前扫描,观察前后两个元素是否相等,如果相等,说明此时还是处于相同的元素的序列中,如果不相等,说明此时碰到了新的元素,把新元素赋予慢指针,慢指针++。
慢指针负责控制非重复序列的size大小。