移除数组中的元素
描述:
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
解析:
暴力解法就是使用 使用双层遍历 第一层遍历删除元素,第二层编辑将后面的元素向前移动一位
更好的方法是使用快慢指针方法
解法
/*** @param {number[]} nums* @param {number} val* @return {number}*/var removeElement = function(nums, val) {var slowIndex = 0for(var fastIndex = 0 ; fastIndex < nums.length ;fastIndex++){if(val !== nums[fastIndex]){nums[slowIndex++] = nums[fastIndex]}}return slowIndex};
想象我们有一个虚拟的数组,长度就是移除那个元素之后数组的长度
使用慢指针遍历这个数组, 使用快指针遍历原数组 , 遍历原数组的时候 遇到和val不相同的值 就赋给虚拟数组
