Leecode27

https://leetcode.cn/problems/remove-element/description/?envType=study-plan-v2&envId=top-interview-150

总体而言,该题并不难,对于js来说,数组的操作足够快速解决该题。

1
2
3
4
5
6
7
8
9
10
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function (nums, val) {
while (nums.indexOf(val) !== -1) {
nums.splice(nums.indexOf(val), 1);
}
};

这里用数组对象的两个方法就能快速秒杀,至于了解两个方法可以看
https://www.bookstack.cn/read/javascript-tutorial/docs-stdlib-array.md
阮一峰大佬的文章一直是顶尖的。

看了官网后知道原来可以用双指针的方法。
简单的理解就是一个指针用于处理数据,一个指针用于存储数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function(nums, val) {
let left = 0, right = nums.length;
while (left < right) {
if (nums[left] === val) {
nums[left] = nums[right - 1];
right--;
} else {
left++;
}
}
return left;
};

ps:感觉速度并没有快多少。

总结:
关于数组字符串的问题,在通读完阮一峰的教程后,了解完两种对象的方法后,处理起来是比较迅速的。当然可能影响我考虑到双指针这种不用函数的办法。