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
|
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
|
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:感觉速度并没有快多少。
总结:
关于数组字符串的问题,在通读完阮一峰的教程后,了解完两种对象的方法后,处理起来是比较迅速的。当然可能影响我考虑到双指针这种不用函数的办法。