Move Zeroes - Leet Code Solution

Gorav Singal

September 03, 2020

TL;DR

Use a write pointer — copy every non-zero element to the write position, then fill the rest with zeros. Two-pointer approach, O(n) time, O(1) space, in-place.

Move Zeroes - Leet Code Solution

Problem Statement

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]

Solution (copying to left)

We can keep a index variable which will keep a tab on all non-zero values.

On iteration, we can move each non-zero value to left side.

Code

public void moveZeroes_simple(int[] nums) {
   int left=0;
   
   for (int i=0; i<nums.length; i++) {
      if (nums[i] != 0) {
         nums[left] = nums[i];
         left ++;
      }
   }
   
   //copy zeroes to remaining array
   for (int i=left; i<nums.length; i++) {
      nums[i] = 0;
   }
}

Complexity

Its O(n)

Another Solution (Swapping)

We can do a slight modification to above solution. The point where we just move non-zero value to left. We can do a swap as well.

Code

public void moveZeroes(int[] nums) {
   int left=0;
   
   for (int i=0; i<nums.length; i++) {
      if (nums[i] != 0) {
         //swap
         int t = nums[i];
         nums[i] = nums[left];
         nums[left] = t;
         
         left ++;
      }
   }
}

Complexity

Its O(n)
But, its better since we are not using another loop to copy zero.

Share

Related Posts

Replace all spaces in a string with %20

Replace all spaces in a string with %20

Problem Statement Replace all spaces in a string with ‘%20’ (three characters…

Valid Palindrome - Leet Code Solution

Valid Palindrome - Leet Code Solution

Problem Statement Given a string, determine if it is a palindrome, considering…

Valid Anagrams - Leet Code Solution

Valid Anagrams - Leet Code Solution

Problem Statement Given two strings s and t , write a function to determine if t…

Rotate Image - Leet Code Solution

Rotate Image - Leet Code Solution

Problem Statement You are given an n x n 2D matrix representing an image, rotate…

Validate Sudoku - Leet Code Solution

Validate Sudoku - Leet Code Solution

Problem Statement Determine if a 9x9 Sudoku board is valid. Only the filled…

Plus One - Leet Code Solution

Plus One - Leet Code Solution

Problem Statement Given a non-empty array of digits representing a non-negative…

Latest Posts

AI Video Generation in 2025 — Models, Costs, and How to Build a Cost-Effective Pipeline

AI Video Generation in 2025 — Models, Costs, and How to Build a Cost-Effective Pipeline

AI video generation went from “cool demo” to “usable in production” in 2024-202…

AI Models in 2025 — Cost, Capabilities, and Which One to Use

AI Models in 2025 — Cost, Capabilities, and Which One to Use

Choosing the right AI model is one of the most impactful decisions you’ll make…

AI Image Generation in 2025 — Models, Costs, and How to Optimize Spend

AI Image Generation in 2025 — Models, Costs, and How to Optimize Spend

Generating one image with AI costs between $0.002 and $0.12. That might sound…

AI Coding Assistants in 2025 — Every Tool Compared, and Which One to Actually Use

AI Coding Assistants in 2025 — Every Tool Compared, and Which One to Actually Use

Two years ago, AI coding meant one thing: GitHub Copilot autocompleting your…

AI Agents Demystified — It's Just Automation With a Better Brain

AI Agents Demystified — It's Just Automation With a Better Brain

Let’s cut through the noise. If you read Twitter or LinkedIn, you’d think “AI…

Security Ticketing and Incident Response

Security Ticketing and Incident Response

The worst time to figure out your incident response process is during an…