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
  • 相关阅读:
    学习情况记录 02
    2020寒假 04
    学习情况记录1
    2020寒假 03
    云平台发展前沿报告 微软云平台——Windows Azure
    2020寒假 02
    2020寒假 01
    大数据课堂测试3——数据清洗(1)
    Ubuntu Hadoop使用过程中的一些技巧1
    登录界面
  • 原文地址:https://www.cnblogs.com/bonelee/p/8587341.html
Copyright © 2011-2022 走看看