0
点赞
收藏
分享

微信扫一扫

leetcode题目26. 删除排序数组中的重复项

GG_lyf 2022-06-27 阅读 58

题目描述

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例

给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。

python代码

版本1

class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
nums.sort()
n = len(nums)
if n == 0:
return 0
ans = []
count = 0
for i in range(n):
if nums[i] not in ans:
ans.append(nums[i])
nums[count] = ans[count]
count += 1
return len(ans)

版本2

class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
n = len(nums)
if n == 0:
return 0
count = 0
for i in range(n):
if nums[i] != nums[count]:
count += 1
nums[count] = nums[i]
return count+1


举报

相关推荐

0 条评论