zoukankan      html  css  js  c++  java
  • leetcode_283_移动零

    给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
    
    示例:
    
    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]
    说明:
    
    必须在原数组上操作,不能拷贝额外的数组。
    尽量减少操作次数。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/move-zeroes
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    #方法1:快慢双指针
    class Solution:
        def moveZeroes(self, nums: List[int]) -> None:
            """
            Do not return anything, modify nums in-place instead.
            """
            p1=p2=0
            length_of_nums=len(nums)
            #如果p2指向的值是0,p2++,否则与p1指向的值交换,p1左边是已经处理好的数
            while(p2<length_of_nums):
                if nums[p2]!=0 :
                    nums[p1],nums[p2]=nums[p2],nums[p1]
                    p1+=1
                p2+=1
    
    #方法2:单指针,先把不是0个向前移到指针的位置
    class Solution:
        def moveZeroes(self, nums: List[int]) -> None:
            """
            Do not return anything, modify nums in-place instead.
            """
            p1=0
            length=len(nums)
            for x in nums:
                if x!=0:
                    nums[p1]=x
                    p1+=1
            for t in range(p1,length):
                nums[t]=0
    
  • 相关阅读:
    关于ActionBar的向下兼容
    hdu 4869 Task(馋)
    javascritpt 原型链
    PKU 1276 Cash Machine
    前端开发——图片标注工具
    Android Notification通知详细解释
    android 如何加入第一3正方形lib图书馆kernel于
    linux 在系统启动过程
    android CountDownTimer 倒计时
    承受
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14005020.html
Copyright © 2011-2022 走看看