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
  • 相关阅读:
    SQL里面的函数应用
    Split的小用法
    堆栈和堆问题
    break,continue,goto,Return几个方法
    接口笔记
    抽象类
    虚方法
    将博客搬至CSDN
    运行数据区
    美团-走迷宫
  • 原文地址:https://www.cnblogs.com/bonelee/p/8587341.html
Copyright © 2011-2022 走看看