删除有序数组中的重复项
https://leetcode.cn/problems/remove-duplicates-from-sorted-array/
给你一个 非严格递增排列 的数组nums,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致。然后返回nums中唯一元素的个数
考虑nums的唯一元素数量为k,去重后,返回唯一元素的数量k。
nums的前k个元素应该包含 排序后 的唯一数组, 下标k-1之后剩余元素可以忽略
示例1
输入: nums=[1,1,2]
输出; 2, nums=[1,2,...]
解释: 函数应该返回新的长度2,并且原数组nums的前两个元素被修改为1,2
示例2
输入: nums=[0,0,1,1,1,2,2,3,3,4]
输出: 5, nums=[0,1,2,3,4,...]
提示
- 1 <= nums.length < 3 * 10^4
- -100 < nums[i] < 100
- nums已按非递减顺序排列
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
k = 1
for i in range(1, len(nums)):
if nums[i] != nums[i-1]:
nums[k] = nums[i]
k += 1
return k