80.删除有序数组中的重复项 II

 ​题目来源:

        leetcode题目,网址:80. 删除有序数组中的重复项 II - 力扣(LeetCode)

解题思路:

       双指针遍历,左指针指向已经确定的元素,右指针指向需要遍历的元素。在遍历时,通过左右指针将出现的元素根据其出现次数添加到左指针末尾。

解题代码:

#python3
class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        left=0
        right=0
        while right=len(nums) or right>=len(nums):
                    left=left+1
                    break
                else:
                    nums[left+1]=nums[right]
                    left=left+1
            else:
                nums[left+1]=nums[left]
                if left+2>len(nums) or right>=len(nums):
                    left=left+2
                    break
                else:
                    nums[left+2]=nums[right]
                    left=left+2
        return left
        
 
  

总结:

        注意访问不要越界。

        官方题解直接用快慢指针省去了很多判断,代码很简洁。


你可能感兴趣的:(LeetCode,刷题,leetcode)