LeetCode热题100-26. 删除有序数组中的重复项
给你一个非严格递增排列的数组nums请你原地删除重复出现的元素使每个元素只出现一次返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k。去重后返回唯一元素的数量k。nums的前k个元素应包含排序后的唯一数字。下标k - 1之后的剩余元素可以忽略。题目要求原地删除重复元素所以不能直接使用del删除元素这样会导致顺序错乱也不是原地原地只能交换所以使用快慢指针。当遇到快慢指针值不相同时进行先1再交换如果相同值直接跳过。时间复杂度O(n)空间复杂度O(1)class Solution: def removeDuplicates(self, nums: List[int]) - int: if not nums: return 0 slow 0 for fast in range(1, len(nums)): if nums[slow] ! nums[fast]: slow 1 nums[slow] nums[fast] return slow 1
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2546517.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!