
implSolution{pubfnremove_duplicates(nums:mutVeci32)-i32{letmutk0;// 新数组长度也是下一个写入位置foriin0..nums.len(){// 前两个元素直接保留之后只有与已保留的倒数第二个不同才保留ifk2||nums[i]!nums[k-2]{nums[k]nums[i];k1;}}kasi32}}思路· 数组有序重复元素一定相邻。· 用 k 表示新数组的长度也指向下一个要写入的位置。· 遍历原数组如果当前元素 nums[i] 与已保留的倒数第二个元素 nums[k - 2] 不同说明该元素出现次数还不到 2 次可以保留。· 否则跳过最终 k 就是新数组长度。时间复杂度 O(n)空间复杂度 O(1)。