CODE/Algorithms & Data Structures

[Coderust] Move All Zeros to the Beginning of the Array

BoriTea 2022. 2. 25. 09:28

 

 

Problem

 

 

 


 

Solution

 

 

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        # z keeps track of latest 0 encountered, i keeps track first of nonzero after z
        z = 0
        for i in range(len(nums)):
            if nums[i] != 0:
                nums[i], nums[z] = nums[z], nums[i]
                z += 1 # next element is always zero since i checks for nonzero elements

 

Time Complexity

O(N)

 

 

Space Complexity

O(1)