题目描述
- 原地删除
- 返回的是长度
解题思路
核心的解题思路是双指针,定义一个快指针和一个慢指针,当快慢指针指向的元素相同时,快指针加1,不同时,慢指针先加1,然后将慢指针指向位置赋值为快指针指向的值。
AC代码
var removeDuplicates = function(nums) {
// 双指针是解决这道题的核心思想
if (nums.length === 0) return 0;
let slow = 0; let fast = 1;
while (fast < nums.length) {
if (nums[fast] != nums[slow]) {
slow++;
nums[slow] = nums[fast];
}
fast++;
}
return slow + 1
}