Moving Zeroes to the End of an Array Using Two Pointer Technique in Python
Problem Explanation Given an integer array nums, your task is to move all 0s to the end of the array while maintaining the relative order of non-zero elements. Important: You must do this in-place Do not create a new array Input: nums = [0, 1, 0, 3, 12] [1, 3, 12, 0, 0] Input: nums = [0] [0] Method
Sri Mahalakshmi
Problem Explanation
Given an integer array nums, your task is to move all 0s to the end of the array while maintaining the relative order of non-zero elements.
Important:
- You must do this in-place
- Do not create a new array
Example:
Input:
nums = [0, 1, 0, 3, 12]
Output:[1, 3, 12, 0, 0]Input:
nums = [0]
Output:[0]
Method Used: Two Pointer Technique
We use:
- One pointer to track position for non-zero elements
- Another pointer to traverse the array
Why This Method?
- Time complexity:
O(n) - Space complexity:
O(1) - Maintains order of non-zero elements
- Efficient and simple
Python Code with Explanation
class Solution:
def moveZeroes(self, nums):
Defines the function (in-place modification, no return needed).
insert_pos = 0
insert_pos keeps track of where the next non-zero element should go.
for i in range(len(nums)):
Loop through each element using index i.
if nums[i] != 0:
Check if the current element is non-zero.
nums[insert_pos], nums[i] = nums[i], nums[insert_pos]
Swap the non-zero element with the element at insert_pos.
insert_pos += 1
Move insert_pos forward.
Complete Code
class Solution:
def moveZeroes(self, nums):
insert_pos = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[insert_pos], nums[i] = nums[i], nums[insert_pos]
insert_pos += 1
Step-by-Step Example
Input:
[0, 1, 0, 3, 12]
Steps:
- Move non-zero elements forward
- Shift zeros to the end
Output:
[1, 3, 12, 0, 0]
Time and Space Complexity
- Time Complexity:
O(n) - Space Complexity:
O(1)
Key Takeaway
The Two Pointer Technique efficiently moves all zeroes to the end while preserving the order of non-zero elements, all in a single pass.
Found this useful? Share it!
Read the Full Story
Continue reading on Dev.to
Related Stories
How to Make Claude, Codex, and Gemini Collaborate on Your Codebase
about 1 hour ago

How I Set Up Server-Side GTM Tracking with Stape.io, GA4 and Google Ads on a Drupal 11 Marketplace
about 1 hour ago
NPR Music: Kronos Quartet: Tiny Desk Concert
about 1 hour ago
The Morning vs Evening Habit Tracker: What the Data Actually Shows
about 1 hour ago