【Leetcode】26.删除有序数组中的重复项

66 阅读1分钟

leetcode-26.png

题目简述:将数字中的重复元素去除,切不重复的元素从小到大排列,数组上操作

拓展:可以结合83题一起完成,这一题是链表的处理

这一题的重点就是在原数组上进行操作,如果不在原数组上操作,直接赋值到新数组上也是解法

var removeDuplicates = function (nums) {
  let slow = 0
  // 起始位置是 1,不同的指向
  for (let i = 1; i < nums.length; ++i) {
    // 不相同则进行赋值,赋值需要将 slow 挪向下一个位置
    if (nums[slow] !== nums[i]) {
      nums[++slow] = nums[i]
    }
  }
  // 需要返回无重复数字的长度,slow最后指向的是数组尾部,长度需要 +1
  return slow + 1
}