Search
⌘K
Get Premium
Two Pointers

Move Zeroes

easy

DESCRIPTION (inspired by Leetcode.com)

Given an integer array nums, write a function to rearrange the array by moving all zeros to the end while keeping the order of non-zero elements unchanged. Perform this operation in-place without creating a copy of the array.

Input:

nums = [2,0,4,0,9]

Output:

[2,4,9,0,0]

Explanation

We can solve this problem by keeping a pointer i that iterates through the array and another pointer nextNonZero that points to the position where the next non-zero element should be placed. We can then swap the elements at i and nextNonZero if the element at i is non-zero. This way, we can maintain the relative order of the non-zero elements while moving all the zeroes to the end of the array.

Solution

|
comma-separated integers
Visualization
def moveZeroes(nums):
nextNonZero = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[nextNonZero], nums[i] = nums[i], nums[nextNonZero]
nextNonZero += 1
20409

move zeros

0 / 13

Mark as read

Your account is free and you can post anonymously if you choose.

Unlock Premium Coding Content

Reading Progress

On This Page