思路
1塔猾、排序
2妄均、雙指針桑孩,一個(gè)遍歷,一個(gè)記錄新數(shù)組的末尾索引
代碼
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
# 雙指針
n = len(nums)
i, j = 0, -1 # i遍歷闽巩,j記錄當(dāng)前不重復(fù)的序列的末尾索引
preNum = float('-inf') # 記錄前一個(gè)元素钧舌,需要先排序,把重復(fù)元素放在一起遍歷
nums.sort()
while i < n:
if nums[i] != preNum:
preNum = nums[i]
j += 1
nums[j] = nums[i]
i += 1
return j + 1
復(fù)雜度
時(shí)間復(fù)雜度:o(nlogn)
空間復(fù)雜度:o(1)