• [算法题] Remove Duplicates from Sorted Array ii


    题目内容

    本题来源LeetCode

    Follow up for "Remove Duplicates":
    What if duplicates are allowed at most twice?

    For example,
    Given sorted array nums = [1,1,1,2,2,3],

    Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length.

     题目思路

    本题难度:medium

    这个题目的思路就是经典的快慢指针方法。假如nums的长度小于等于2,则直接返回nums数组。然后设立两个指针i,index。初始化都指向第3个元素,快指针为i,慢指针为index。假如nums[i]!=nums[index-2],则慢指针加一。

    Python代码

    class Solution(object):
        def removeDuplicates(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            l=len(nums)
            if l<=2:
                return l
            index=2
            for i in range(2,l):
                if nums[i]!=nums[index-2]:
                    nums[index]=nums[i]
                    index+=1
            return index
  • 相关阅读:
    Android购物商城
    Android简易计算器
    安卓第四周作业
    第一次安卓作业
    十五周课后习题
    第十三周作业
    十三周上机练习
    第十二周作业
    第十二周练习
    11周上机作业(5.14)
  • 原文地址:https://www.cnblogs.com/chengyuanqi/p/7115226.html
Copyright © 2020-2023  润新知