Skip to content

Move all zeroes to end of array ​

Problem Description ​

Given an integer array A, 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.

Problem Constraints

1<=|A|<=105

Input Format

First argument is array of integers A.

Output Format

Return an array of integers which satisfies above property.

Example Input

Input 1:
A = [0, 1, 0, 3, 12]
Input 2:
A = [0]

Example Output

Ouput 1:
[1, 3, 12, 0, 0]
Ouput 2:
[0]

Example Explanation

Explanation 1:
Shift all zeroes to the end.
Explanation 2:
There is only one zero so no need of shifting.

Solution ​

TIP

Array Iteration.

swift
import Foundation

class Solution {
	func solve(_ A: inout [Int]) -> [Int] {
        var i = 0
        for v in A {
            if v != 0 {
                A[i] = v
                i += 1
            }
        }
        
        if i < A.count {
            for j in i..<A.count{
                A[j] = 0
            }
        }
        return A
	}
}

Reference ​