移除数组中的元素
    描述:
    给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

    解析:
    暴力解法就是使用 使用双层遍历 第一层遍历删除元素,第二层编辑将后面的元素向前移动一位
    更好的方法是使用快慢指针方法
    解法

    1. /**
    2. * @param {number[]} nums
    3. * @param {number} val
    4. * @return {number}
    5. */
    6. var removeElement = function(nums, val) {
    7. var slowIndex = 0
    8. for(var fastIndex = 0 ; fastIndex < nums.length ;fastIndex++){
    9. if(val !== nums[fastIndex]){
    10. nums[slowIndex++] = nums[fastIndex]
    11. }
    12. }
    13. return slowIndex
    14. };

    想象我们有一个虚拟的数组,长度就是移除那个元素之后数组的长度
    使用慢指针遍历这个数组, 使用快指针遍历原数组 , 遍历原数组的时候 遇到和val不相同的值 就赋给虚拟数组