asp婚纱摄影网站源码,wordpress3.9中文版,佛山营销网站建设服务公司,创意设计广告LeetCode 80 删除有序数组中的重复项 II 给你一个有序数组 nums #xff0c;请你 原地 删除重复出现的元素#xff0c;使得出现次数超过两次的元素只出现两次 #xff0c;返回删除后数组的新长度。 不要使用额外的数组空间#xff0c;你必须在 原地 修改输入数组 并在使用 …LeetCode 80 删除有序数组中的重复项 II 给你一个有序数组 nums 请你 原地 删除重复出现的元素使得出现次数超过两次的元素只出现两次 返回删除后数组的新长度。 不要使用额外的数组空间你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 双指针 快慢指针单向遍历双指针
class Solution:def removeDuplicates(self, nums: List[int]) - int:if not nums:return 0i, repeat_item, repeat_times 1, nums[0], 1for idx in range(1, len(nums)):if nums[idx] repeat_item:if repeat_times 2:nums[i] nums[idx]i 1repeat_times 1else:repeat_item nums[idx]nums[i] nums[idx]i 1repeat_times 1return i看了看题解发现常数可以从2开始然后代码可以更加精简
class Solution(object):def removeDuplicates(self, nums):slow 0for fast in range(len(nums)):if slow 2 or nums[fast] ! nums[slow - 2]:nums[slow] nums[fast]slow 1return slow# 作者负雪明烛
# 链接https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/
# 来源力扣LeetCode
# 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。