问题描述:
解题思路:
1.设定快慢指针
2.快指针遍历结束之前,若i指向的值和j指向的值相等,则跳过j
3.若不相等,则赋予i+1
具体代码:
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;//长度为0,直接返回
int i = 0;
for (int j = 1; j < nums.length; j++) {//快指针先遍历
if (nums[j] != nums[i]) {//不相等的话,
i++;
nums[i] = nums[j];//赋值下一位
}
}
return i + 1;//返回的是长度
}
总结:
注意是返回数组长度。