您的位置:首页 > 编程语言 > Python开发

LeetCode OJ 系列之26 Remove Duplicates from Sorted Array --Python

2015-11-18 17:02 585 查看
Problem:

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.
Answer:

class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0: return len(nums)
last = nums[-1]
for index in range(len(nums)-2,-1,-1):
if last == nums[index]: del nums[index]
else: last = nums[index]
return len(nums)
Note:

由于OJ对空间有要求,不允许重新创建新的列表,在实际使用过程中,其实有更加简单的方法:

将给定List转化为Set类型,即可自动消除其中的重复元素。

class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return len(set(nums))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LeetCode Python OJ