給定一個排序數組,你需要在原地刪除重復出現的元素,使得每個元素只出現一次,返回移除后數組的新長度。


我想了兩個方法。

第一個

是使用一個指針,因為是有序的,只需要從頭移動到尾部,如果發現下一個元素與當前元素相等,則移動當前元素之后的元素,把相同的元素覆蓋掉。

大致的步驟如下

第二個

是使用兩個指針,一個快(j)一個慢(i),如果i j 所指向的元素不相等,則i j 同時加一,如果相等,則將j向后移動直到兩者所指向的元素不相等。

上一步就相當於確定了移動的步伐,下一步就是移動了。

大致步驟如下

 

方法二比起方法一來說移動的次數會更加少一點。

具體代碼請查看我的GitHub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM