26、删除有序数组中的重复项
js
;(function () {
/**
* 26. 删除有序数组中的重复项
* 给你一个 【升序排列】 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,
* 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
*
* 将最终结果插入 nums 的前 k 个位置后返回 k 。
* 不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
*
*/
function removeDuplicates(nums: number[]): number {
// 方法一:双指针
const len = nums.length
if (len === 0) return 0
let fast = 1,
slow = 1
while (fast < len) {
if (nums[fast] !== nums[fast - 1]) {
nums[slow] = nums[fast]
++slow
}
++fast
}
return slow
// 方法二:
}
console.log(removeDuplicates([0, 0, 1, 1, 1, 2, 2, 3, 3, 4]))
})()