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
    
  • 相关阅读:
    IDEA常用快捷键
    IDEA的使用
    IDEA的常用设置
    IDEA的下载安装
    004-解决多线程安全问题
    002-多线程的创建
    Java中字符串与日期之间的转换
    select标签的字体居中问题
    IntelliJ IDEA常用快捷键
    div小技巧之子元素垂直居中
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14005020.html
Copyright © 2011-2022 走看看