Python3_Leetcode #26 刪除有序陣列中的重複項
阿新 • • 發佈:2021-07-18
給你一個有序陣列 nums ,請你 原地 刪除重複出現的元素,使每個元素 只出現一次 ,返回刪除後陣列的新長度。
不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 O(1) 額外空間的條件下完成。
理解:只需要返回長度,不需要返回陣列
思路:
雙指標思路:
設定兩個值,分別代表兩個指標
一個左指標,一個右指標
1. 遍歷整個陣列
2.如果right對應的值比左指標的大,則left +1
3.如果右指標和左指標相同,則不做操作
4.最後返回左指標+1,因為都是從0 開始的。
程式碼:
classSolution: defremoveDuplicates(self,nums:List[int])->int:iflen(nums)==0: return0
left =0
forrightinrange(len(nums)): ifnums[left]<nums[right]: left+=1 nums[left]=nums[right]
returnleft+1