← Arrays

Move Zeroes

Easy
Python
def move_zeroes(nums):
    k=0
    for n in nums:
        if n!=0: nums[k]=n; k+=1
    while k<len(nums): nums[k]=0; k+=1
Java
public void moveZeroes(int[] nums){
    int k=0;
    for(int n:nums) if(n!=0) nums[k++]=n;
    while(k<nums.length) nums[k++]=0;
}

Key Insight

k+=1 vs k++. Logic identical.

Python → Java Differences

  • k+=1 vs k++
  • len() vs .length
  • Two-pointer identical
Python
def move_zeroes(nums):
    k=0
    for n in nums:
        if n!=0: nums[k]=n; k+=1
    while k<len(nums): nums[k]=0; k+=1
Java
public void moveZeroes(int[] nums){
    int k=0;
    for(int n:nums) if(n!=0) nums[k++]=n;
    while(k<nums.length) nums[k++]=0;
}

Algorithm Steps

1. Write pointer k
2. Copy non-zeros
3. Fill zeros