• 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
  • 相关阅读:
    数据攻略●R语言自述
    测试实例
    xml反射
    过滤器
    使用s标签来进行简单的表格配置
    将Spring、Hibernate、Struts2连接起来
    Spring容器
    初见Spring框架
    Spring框架的AOP
    Hibernate里面的几个方法
  • 原文地址:https://www.cnblogs.com/bonelee/p/8587341.html
Copyright © 2020-2023  润新知