数组

数组

移除元素

图 0

首先数组在计算机中的存储实在连续的内存空间内,因此删除数组中的数据,其实是用后面的数据覆盖被删除的数据,然后修改数组的长度。

方法有暴力破解和双指针法

双指针原理使用一对快慢指针将,慢指针质量需要被移除的位置,快指针指向替代移除元素的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
var removeElement = function(nums, val) {
let slow = 0
for(let fast=0;fast<nums.length;fast++){
//元素不等于val时,快慢指针一同增加,
//一旦有元素等于val,说明这个元素需要被覆盖,那就让快指针去找不等于val的元素
if (nums[fast]!=val){
nums[slow++] = nums[fast]
}
}
nums.length = slow
console.log(nums)
// return nums
};