# Given a sorted array, remove the duplicates in place such that each element appear only once and # return the new length. # Do not allocate extra space for another array, you must do this in place with constant memory. # # For example, # Given input array nums = [1,1,2], # Your function should return length = 2, with the first two elements of nums being 1 and 2 # respectively. It doesn't matter what you leave beyond the new length. # Subscribe to see which companies asked this question. # 输入一个排序后的列表,去除重复的元素,返回去重之后的列表的长度 class Solution(object): def removeDuplicate(self, nums): nums = list(sorted(set(nums))) return len(nums) def removeDuplicate1(self, nums): if not nums: return 0 newTail = 0 for i in range(1, len(nums)): if nums[i] != nums[newTail]: newTail += 1 nums[newTail] = nums[i] return newTail + 1 if __name__ == '__main__': nums = [1, 1, 2] s = Solution() print(s.removeDuplicate(nums), s.removeDuplicate1(nums))
Leetcode练习<十> 列表元素去重
最新推荐文章于 2024-05-13 00:15:33 发布