zoukankan      html  css  js  c++  java
  • leetcode 283. Move Zeroes

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

    For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

    Note:

      1. You must do this in-place without making a copy of the array.
      2. Minimize the total number of operations.
    class Solution(object):
        def moveZeroes(self, nums):
            """
            :type nums: List[int]
            :rtype: void Do not return anything, modify nums in-place instead.
            """
            # use i to record start
            # use j to record non-0 place
            # put nums[j] to nums[i]
            i,j = 0,0
            while j<len(nums):
                if nums[j]!=0:
                    nums[i]=nums[j]
                    i+=1
                j+=1
            while i<len(nums):
                nums[i]=0
                i+=1

    swap is better:

    class Solution(object):
        def moveZeroes(self, nums):
            """
            :type nums: List[int]
            :rtype: void Do not return anything, modify nums in-place instead.
            """
            # use i to record start
            # use j to record non-0 place
            # put nums[j] to nums[i]
            i,j = 0,0
            while j<len(nums):
                if nums[j]!=0:
                    nums[i],nums[j]=nums[j],nums[i]
                    i+=1
                j+=1
  • 相关阅读:
    swift -- 静态变量static
    swift -- 单例+ lazy懒加载 + 第三方库
    swift -- 代理delegate
    swift -- 闭包
    swift -- 构造/析构函数
    swift -- 继承
    swift -- as / 扩展
    swift -- 类中的方法
    swift -- 类和结构体
    C 扩展库
  • 原文地址:https://www.cnblogs.com/bonelee/p/8587341.html
Copyright © 2011-2022 走看看