不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成
说明
为什么返回数值是整数,但输出的答案是数组呢?...函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。...示例 2:
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为...左指针不动
# 最终数组的长度就是左指针的位置+1
return i+1
解题思路:双指针
首先注意数组是有序的,那么重复的元素一定会相邻
要求删除重复元素,实际上就是将不重复的元素移到数组的左侧...i 不需要动
如果不相等,i 后移 1 位,然后将 j 位置的值赋值到 i 新位置上,j 继续后移一位(其实就是循环+1)
重复上述过程,直到 j 指向数组最后一个元素
返回 i + 1,即为新数组长度