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
    
  • 相关阅读:
    Python基础(三)
    离线部署k8s集群
    linux安装python3
    vue elementui table 内按钮跳转页面
    js 正则表达式 验证数字或字母
    ps2020 将图片中的字清除 并且不损坏背景图
    css 背景图片铺满
    ps 缩放快捷键
    css 字体阴影和边框阴影
    ps 修改图片图层大小
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14005020.html
Copyright © 2011-2022 走看看