题目描述
export function removeDuplicates(nums: number[]): number {
// while (i < len && nums[i] !== undefined) {
// 因为是升序数组, 比较当前和当前下一个值, 下一个与当前相等便将它移出数组(最开始没明白题目意思, 以为数组也得移除重复项)
// if (nums[i + 1] === nums[i]) {
// nums.splice(i + 1, 1);
// } else {
// 下个值大于当前值, 从下个值开始新的一轮比较
// i += 1;
// }
// }
// return nums.length;
//🧍♂️ 快慢指针... 太强了
let fast = 1;
let slow = 0;
while (fast < nums.length) {
if (nums[fast] > nums[slow]) nums[++slow] = nums[fast];
fast++;
}
return ++slow;
}