JavaScript数组(leetcode题①)——删除排序数组中的重复项

115 阅读1分钟
  • 根据leetcode给出的答案进行详解,我的解答和理解会比较的语义化
  • leetcode给的解答方式是进行快慢指针的元素检验,当然也可以通过其他算法(比如过左右指针进行比较也可)
      var removeDuplicates = function(nums) {
        //判断是否存在数组
        const n = nums.length;
        if (n === 0) {
            return 0
        }
        //设置快慢指针
        let fast = 1,
            slow = 1;
        //循环小于数组长度指针
        while (fast < n) {
            //慢指针比快指针要慢一步
            //如果快指针前后两个数据不相等 则将快指针的后数据给慢指针
            //快指针执行完毕则退出循环,长度停留在慢指针被替换的数值 为2
            if (nums[fast] !== nums[fast - 1]) {
                nums[slow] = nums[fast];
                ++slow

            }
            ++fast;
        }
        //输出要替换后的长度
        return slow
        //如要输出结果 则将替换后的最后重复的元素给删除掉
        //nums.pop(nums[slow])
        //return nums
    };
    console.log(removeDuplicates([1, 1, 2]))
    ```