数组去重

算法来源:LeetCode英文版

题目

题目

思路

一个快指针,一个慢指针。快指针比慢指针快2位。
当快指针不等于慢指针时,慢指针前移一位,删除快指针与慢指针之间重复的内容。
更新快指针,使快指针比慢指针快两位。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var removeDuplicates = function(nums) {
let slow = 0;
let speed = 2;
//当删除数组中重复数据时,nums的长度会更新
while(speed<nums.length){

while(nums[slow]==nums[speed]){
speed++

}
slow += 1

nums.splice(slow+1,speed-slow-1) // 删除快指针和慢指针之间的数据

speed = slow+2

}
return nums.length
};