Move Zeroes

Given an integer array nums, move all 0’s to the end of it while maintaining the relative order of the non-zero elements.

Note that you must do this in-place without making a copy of the array.

Solution

Double Pointer / Fast And Slow Pointer

Code

  • submit code
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        slow = 0
        fast = 0

        while(fast < len(nums)):
            if(nums[fast] != 0):
                nums[slow] = nums[fast]
                slow += 1
            fast += 1

        for m in range(slow,len(nums)):
            nums[m] = 0
  • full code
class Solution:
    def moveZeroes(self, nums):

        slow = 0
        fast = 0

        while(fast < len(nums)):
            if(nums[fast] != 0):
                nums[slow] = nums[fast]
                slow += 1
            fast += 1

        for m in range(slow,len(nums)):
            nums[m] = 0

        # print(nums)

nums = [0,1,0,3,12]
S = Solution()
print(S.moveZeroes(nums))

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *