LeetCode系列之 (JavaScript) => 27. 移除元素
题目描述:
解题思路分析:
题目要移除指定的值,可以用到lodash 里面的_.remove() 方法;
可以使用快慢指针,首先快指针是一直移动,如果和指定的值不相等,就改变原有数组慢指针指向的值,慢指针移动一位,如果相等,就只移动快指针,最后返回在数组中不同于指定值的元素个数,即慢指针加1;
不同解法:
/**
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
// self: 使用lodash 的remove 方法,
// 返回移除元素组成的新数组;
// 改变原来数组,变成删除后的数组
var removeElement = function(nums, val) {
_.remove(nums, (v) => v == val);
return nums.length;
};
// 快慢指针
// 快指针:遍历数组; 慢指针:记录不相等的值
// !!! 重点关注慢指针变化 和返回值,slow 已经是加1以后的了
// !!! while循环一定要考虑迭代的变量
var removeElement = function(nums,val){
var fast = 0;
var slow = 0;
var len = nums.length;
// while(fast < len){
// if(nums[fast] != val){
// // console.log('before'+slow)
// nums[slow++] = nums[fast];
// // console.log('after'+slow)
// }
// fast++;
// }
for(fast; fast