编辑代码

function RemoveDuplicates(nums: number[]): number[] {
    if (nums.length === 0) return [];
    
    let slow = 0; // 慢指针,用于记录去重后数组的末尾
    let fast = 1; // 快指针,用于遍历数组
    
    while (fast < nums.length) {
        if (nums[fast] === nums[slow]) {
            nums.splice(fast, 1); // 使用 splice 方法移除重复元素
        } else {
            slow++; // 不相等时,慢指针前进一步
            fast++; // 快指针继续向前移动
        }
    }
    
    return nums; // 返回去重后的数组
}

function RemoveDuplicates1(nums: number[]): number[] {
    if(nums.length===0) return[]
    let fast=1
    let slow=0
    while(fast<nums.length){
        if(nums[fast]!==nums[slow]){
            slow++
            nums[slow]= nums[fast]
        }else{
            fast++
        }
    }
    return nums.splice(0,slow+1)
}
let nums = [1, 1, 1, 1, 2, 3, 4, 4];
nums = RemoveDuplicates1(nums); // 去除重复项后重新赋值给 nums
console.log(nums); // 打印处理后的数组