LeetCode——26. 删除有序数组中的重复项

134 阅读1分钟

题目描述

leetcode.cn/problems/re…

image.png

  • 原地删除
  • 返回的是长度

解题思路

核心的解题思路是双指针,定义一个快指针和一个慢指针,当快慢指针指向的元素相同时,快指针加1,不同时,慢指针先加1,然后将慢指针指向位置赋值为快指针指向的值。

AC代码

var removeDuplicates = function(nums) {
    // 双指针是解决这道题的核心思想
    if (nums.length === 0) return 0;
    let slow = 0; let fast = 1;
    while (fast < nums.length) {
        if (nums[fast] != nums[slow]) {
            slow++;
            nums[slow] = nums[fast];
        }
        fast++;
    }
    return slow + 1
}