• leetcode 80 Remove Duplicates from Sorted Array II


    题目链接

    https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/

    题目原文

    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.

    题目大意

    给定一个排好序的数组。修改这个数组使得每个数最多可以出现两次。返回去掉多余重复数组后的长度length

    后面一直出错,研究了下别人的答案才意识到题目还有一个要求,就是要把排序后的数组依旧保存到原nums[]数组中,要保证前length位的nums里面存的数就是已经排序后的数据。

    比如【1,1,1,2,2,3,4】返回去重后数组个数6,去重后的nums的前6位应该是【1,1,2,2,3,4】,另外保存到一个数组中会报错

    英语不好的伤痛!



    1 #encoding=utf-8 2 class Solution(object): 3 def removeDuplicates(self, nums): 4 """ 5 :type nums: List[int] 6 :rtype: int 7 """ 8 9 count = 1 10 j = 0 #j是重复数字的个数 11 if not nums: 12 return 0 13 if len(nums) == 1: 14 return 1 15 if len(nums) == 2: 16 return 2 17 for i in range(1,len(nums)): 18 if nums[i-1] != nums[i]: 19 j = 0 20 count += 1 21 nums[count-1] = nums[i] #更替nums 22 else: 23 j += 1 24 if j == 1: 25 count += 1 26 nums[count-1] = nums[i] 27 return count,nums 28 29 30 31 nums = [1,1,1,2,3,3,3,4,4,4] 32 s = Solution() 33 print s.removeDuplicates(nums)

    效果出乎意料的好,超越了100%的人,开心,遇到问题没法解决的时候一定要多借鉴别人的想法,反思自己的不足,找到自己的错误

    借鉴的解法:http://www.cnblogs.com/loadofleaf/p/5366950.html,性能不是很好

     

  • 相关阅读:
    零零碎碎
    MFC入门--显示静态图片及调用本地软件
    Python版本OpenCV安装配置及简单实例
    用星星画菱形--Java
    pycharm IDE在导入自定义模块时提示有错,但实际没错
    Cmd使用方式--命令行运行程序
    cv2 & PIL(pillow)显示图像
    C++命令行多文件编译(g++)
    MNIST多图显示--Python练习
    visual studio 2017--括号自动补全
  • 原文地址:https://www.cnblogs.com/lovely7/p/5846030.html
Copyright © 2020-2023  润新知