
解法:
1、采用快慢指针的办法, slow 在后, fast 在前,往前走,去遍历整个数组
fast 遇到不重复的数字时, slow 往前走一位,然后将 fast 的值赋给 slow
快指针用来遍历整个数组,找到不相等的就告诉慢指针,让慢指针记下来
慢指针的作用就是来记录不相等的值,等快指针去通知它,喂,那谁谁,赶紧记一下
/**
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function(nums) {
// 判断数组长度为0 或 1的情况
if (nums.length <= 1) return nums.length
// 快慢指针都从 0 开始
let slow = 0,fast = 0
while(fast < nums.length) {
// 当快指针与慢指针不相等时,慢指针先往前进一位,然后快指针赋值给慢指针
if(nums[fast] !== nums[slow]) {
slow ++
nums[slow] = nums[fast]
}
// 快指针遍历整个数组
fast ++
}
// 因为 slow 是从 0 开始的,所以需要 + 1
return slow + 1
};