zoukankan      html  css  js  c++  java
  • LeetCode--026--删除排序数组中的重复项

    问题描述:

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

    不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

    示例 1:

    给定数组 nums = [1,1,2], 
    
    函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 
    
    你不需要考虑数组中超出新长度后面的元素。

    示例 2:

    给定 nums = [0,0,1,1,1,2,2,3,3,4],
    
    函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
    
    你不需要考虑数组中超出新长度后面的元素。
    
     1 class Solution(object):
     2     def removeDuplicates(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: int
     6         """
     7         length = len(nums)
     8         if length <= 1:
     9             return length
    10         i = 0
    11         for j in range(1,length):
    12             if nums[i] != nums[j]:
    13                 i+=1#这一句一定要在下面这句的上面
    14                 nums[i] = nums[j]
    15            
    16         return i+1

    2018-07-23  17:14:11

    方法2:

     1 class Solution:
     2     def removeDuplicates(self, nums):
     3         k=0
     4         i=0
     5         while i<len(nums)-1:
     6             if nums[i]==nums[i+1]:
     7                 k+=1
     8             else:
     9                 nums[i-k+1]=nums[i+1]
    10             i+=1
    11         return i-k+1

    2019-12-06 09:01:12

  • 相关阅读:
    防止软件被暴力破解
    简单分析QQ群验证
    Hash(哈希)算法科普
    C语言自学的方法
    如何防范算法求逆
    .Net程序逆向入门教程
    分享几篇VMP研究和分析的文章
    逆向工程
    PHP之MVC项目实战(三)
    PHP之MVC项目实战(二)
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9355721.html
Copyright © 2011-2022 走看看