leetcode26. 删除排序数组中的重复项

104 views次阅读
没有评论

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2],

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。

你不需要考虑数组中超出新长度后面的元素。 示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的元素。

因为是排好序的数组,所以从头循环遍历就可:

    const removeDuplicates = (nums) => {
      let index = 0;
      while (index < nums.length) { // 循环数组长度
        if (nums[index] === nums[index + 1]) {
          nums.splice(index+1, 1); // 如果当前数和它的下一位相等,则把下一位的数字移除数组,并把index减一
          index--;
        }
        index++; // 再把index加一
      }
      return index; // 最后返回的数组长度,return nums  是返回最后去除重复元素后的数组
    }
  
guxuerui
版权声明:本站原创文章,由guxuerui于2020年04月12日发表,共计790字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Loading...