给定一个有序数组,你需要[原地]删除其中的重复内容,使每个元素只出现一次,并返回新的长度。
不要另外定义一个数组,您必须通过用 O(1) 额外内存[原地]修改输入的数组来做到这一点。
给定数组: nums = [1,1,2],
你的函数应该返回新长度 2, 并且原数组nums的前两个元素必须是1和2
不需要理会新的数组长度后面的元素
返回去重后的数据长度,然后leetcode外部程序利用这个长度,在nums里截取前面的元素,得到去重后的数组。因此,在程序中需要对nums的元素重排。比如112重排后变成121,截取前2个,得到12。
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0:
return 0
j = 0
for i in range(len(nums)):
if nums[i] != nums[j]:
nums[i], nums[j+1] = nums[j+1], nums[i]
j += 1
return j + 1