美文网首页
Move Zeroes

Move Zeroes

作者: Mree111 | 来源:发表于2019-10-15 10:08 被阅读0次

Description

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.

Example:

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
Note:

You must do this in-place without making a copy of the array.
Minimize the total number of operations.

Solution

代码不长,需要先找到第一个0值,然后依次遍历填补空缺,最后需要把剩下的复制为0

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        i = 0
        while i<len(nums):
            if nums[i] ==0:
                break
            i+=1
        start = i # first zero 
        if start == len(nums):
            return nums
        for i in range(start,len(nums)):
            if nums[i] !=0:
                nums[start] = nums[i]
                start +=1
            else:
                continue
        for j in range(start,len(nums)):
            nums[j]=0
            
                
        

相关文章

网友评论

      本文标题:Move Zeroes

      本文链接:https://www.haomeiwen.com/subject/gqoopctx.html