题目解题运行结果一、看题目1、数组有序。有序意味着相同数字一定紧紧挨在一起不会零散分布2、原地操作不能新建数组只能在 nums 原来的空间用覆盖的方式修改。不能开辟另一个数组存放结果。3、规则同一个数字最多留 2 个。1,1 允许1,1,1 第三个 1 必须删掉4、返回值是整数新长度不是数组。二、slow 是待写入位置。nums[0]~nums[slow-1] 是已经处理好的合法数组。nums[slow-2]合法数组倒数第二个元素。如果 nums[fast] nums[slow-2]合法数组里倒数第二个就是这个数字说明合法数组已经放了两个这个数了。现在 fast 又是同一个就是第三个不能保留跳过。如果不相等 当前 fast 这个数字可以放进 slow 位置slow 往后移动一格。三、自己计算nums[1,1,1,2,2,3]nums [1,1,1,2,2,3]numsSize6slow2fast 从 2 开始遍历fast2nums [fast]1比较 nums [slow-2] nums [0] 1。两者相等含义已经存了 2 个 1当前是第三个不能写入。slow 保持 2 不变。fast3nums [fast]2 nums [slow-2]nums [0]1。2≠1可以写入。nums [slow]nums [3] → nums [2]2slow 变成 3。现在数组前 slow 位[1,1,2]fast4nums [fast]2nums [slow-2]nums [1]1。2≠1可以写入。nums [3]2slow4。数组前 slow 位[1,1,2,2]等等......