1. 程式人生 > 其它 >Python3_Leetcode #26 刪除有序陣列中的重複項

Python3_Leetcode #26 刪除有序陣列中的重複項

給你一個有序陣列 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