关闭

【leetcode】【40%】【M】Remove Duplicates from Sorted Array II

244人阅读 评论(0) 收藏 举报
分类:


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 1122 and 3. It doesn't matter what you leave beyond the new length.

Subscribe to see which companies asked this question

跟前一道题倒是没什么太大差别,修改一下判断条件。

最后面的一个元素的处理容易出问题


class Solution(object):
    def removeDuplicates(self, nums):
       
        l = len(nums)
        if l <= 2:
            return l
        index = 0
        i = 0
        while i<l:
            if i+1<l and nums[i] != nums[i + 1]:
                nums[index] = nums[i]
                index += 1
                i += 1
                continue
            elif i+1 == l:
                nums[index] = nums[i]
                index += 1
                return index
            else:
                temp = nums[i]
                if index >= l-1:
                    nums[index] = temp
                    return l
                else:
                    nums[index],nums[index+1] = temp,temp
                    i += 2
                    index += 2
                if index > l-1:
                    return l
                while i < l and nums[i] == temp:
                    i += 1
                   
            #print index,i,nums
        #print nums
        return index
               
           
       
        """
        :type nums: List[int]
        :rtype: int
        """
       


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:64436次
    • 积分:2431
    • 等级:
    • 排名:第15237名
    • 原创:187篇
    • 转载:4篇
    • 译文:0篇
    • 评论:9条
    最新评论