题目描述:
题解一:采用双指针方法:
1.left初始化为0,right初始化为1。
2.依次判断nums[left]与nums[right]是否相等,如果相等则移除nums[right]。
3.left=right right=left进入下一组判断。
class Solution(object): def removeDuplicates(self, nums): left = 0 right = left+1 while right<len(nums): while right<len(nums) and nums[left] == nums[right]: nums.remove(nums[right]) left = right right = left + 1 return len(nums)
题解二:
用j记录nums中不重复数字的个数,j初始化为1,即nums[0]保持不变
遍历nums,如果nums[i]!=nums[i+1],则将nums[i+1]保存在nums[j]。
class Solution(object): def removeDuplicates(self, nums): j = 1 for i in range(len(nums)-1): if nums[i] != nums[i+1]: nums[j] = nums[i+1] j = j+1 return j