题意: 给定一个排好序的数组,移除其中重复的元素,并返回新的数组长度,在O(1)的空间复杂度内完成。
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.
思路:因为要在原数组上操作,而且超过新长度的部分不管,所以直接用两个指针操作就好了。
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
i = 0
for j in xrange(1,len(nums)):
if nums[j] != nums[i]:
i += 1
nums[i] = nums[j]
return i+1