1.首先题目要求不能用额外的空间,O(1)解决
2.range(1,len(nums))的范围是[1,len(nums)-1]
3.self.nums = nums暂且看作是初始化
4.python里面没有i++这样,写成i+=1
刚开始的时候觉得后面的数会把前面的数字覆盖的问题,首先第一个元素肯定是保留的,如果出现重复最多是从第二个开始,因此只需要判断后面一个数字是否与前面的一位重复即可。先确定下来刚开始的数字,一步步向后面移动。
覆盖问题,比如碰到了重复的数字,j会继续往后移动,当找到了不重复的j后,我们需要的只是这个时候的num[j],i只是用来计数不重复的数字,num[i]是有值的,会被num[j]覆盖,这是🆗的,因为我们只统计不重复的数。
最后返回不重复的数字个数
为什么是返回i不是i+1呢?
注意后面nums[i]= nums[j]之后,i是+1了的!!因此最后的个数是正确的