1.首先題目要求不能用額外的空間,O(1)解決
2.range(1,len(nums))的范圍是[1,len(nums)-1]
3.self.nums = nums暫且看作是初始化
4.python里面沒有i++這樣,寫成i+=1
剛開始的時候覺得后面的數(shù)會把前面的數(shù)字覆蓋的問題,首先第一個元素肯定是保留的,如果出現(xiàn)重復最多是從第二個開始,因此只需要判斷后面一個數(shù)字是否與前面的一位重復即可。先確定下來剛開始的數(shù)字,一步步向后面移動。
覆蓋問題,比如碰到了重復的數(shù)字,j會繼續(xù)往后移動,當找到了不重復的j后,我們需要的只是這個時候的num[j],i只是用來計數(shù)不重復的數(shù)字,num[i]是有值的,會被num[j]覆蓋,這是??的,因為我們只統(tǒng)計不重復的數(shù)。
最后返回不重復的數(shù)字個數(shù)

為什么是返回i不是i+1呢?
注意后面nums[i]= nums[j]之后,i是+1了的??!因此最后的個數(shù)是正確的