Given an array of N numbers, the task is to remove all leading zeros from the array.
Examples:
Input : arr[] = {0, 0, 0, 1, 2, 3} Output : 1 2 3 Input : arr[] = {0, 0, 0, 1, 0, 2, 3} Output : 1 0 2 3
Approach: Mark the first non-zero number’s index in the given array. Store the numbers from that index to the end in a different array. Print the array once all numbers have been stored in a different container.
Below is the implementation of the above approach:
C++
// C++ program to print the array // removing the leading zeros #include <bits/stdc++.h> using namespace std;
// Function to print the array by // removing leading zeros void removeZeros( int a[], int n)
{ // index to store the first
// non-zero number
int ind = -1;
// traverse in the array and find the first
// non-zero number
for ( int i = 0; i < n; i++) {
if (a[i] != 0) {
ind = i;
break ;
}
}
// if no non-zero number is there
if (ind == -1) {
cout << "Array has leading zeros only" ;
return ;
}
// Create an array to store
// numbers apart from leading zeros
int b[n - ind];
// store the numbers removing leading zeros
for ( int i = 0; i < n - ind; i++)
b[i] = a[ind + i];
// print the array
for ( int i = 0; i < n - ind; i++)
cout << b[i] << " " ;
} // Driver Code int main()
{ int a[] = { 0, 0, 0, 1, 2, 0, 3 };
int n = sizeof (a) / sizeof (a[0]);
removeZeros(a, n);
return 0;
} |
Java
// Java program to print the array // removing the leading zeros import java.util.*;
class solution
{ // Function to print the array by // removing leading zeros static void removeZeros( int [] a, int n)
{ // index to store the first
// non-zero number
int ind = - 1 ;
// traverse in the array and find the first
// non-zero number
for ( int i = 0 ; i < n; i++) {
if (a[i] != 0 ) {
ind = i;
break ;
}
}
// if no non-zero number is there
if (ind == - 1 ) {
System.out.print( "Array has leading zeros only" );
return ;
}
// Create an array to store
// numbers apart from leading zeros
int [] b = new int [n - ind];
// store the numbers removing leading zeros
for ( int i = 0 ; i < n - ind; i++)
b[i] = a[ind + i];
// print the array
for ( int i = 0 ; i < n - ind; i++)
System.out.print(b[i]+ " " );
} // Driver Code public static void main(String args[])
{ int [] a = { 0 , 0 , 0 , 1 , 2 , 0 , 3 };
int n = a.length;
removeZeros(a, n);
} } |
Python3
# Python3 program to print # the array removing # the leading zeros # Function to print the # array by removing # leading zeros def removeZeros(a, n):
# index to store the
# first non-zero number
ind = - 1 ;
# traverse in the array
# and find the first
# non-zero number
for i in range (n):
if (a[i] ! = 0 ):
ind = i;
break ;
# if no non-zero
# number is there
if (ind = = - 1 ):
print ( "Array has leading zeros only" );
return ;
# Create an array to store
# numbers apart from leading
# zeros b[n - ind];
b = [ 0 ] * (n - ind);
# store the numbers
# removing leading zeros
for i in range (n - ind):
b[i] = a[ind + i];
# print the array
for i in range (n - ind):
print ( b[i] , end = " " );
# Driver Code a = [ 0 , 0 , 0 , 1 , 2 , 0 , 3 ];
n = len (a);
removeZeros(a, n); # This code is contributed by mits |
C#
// C# program to print the array // removing the leading zeros using System;
class solution
{ // Function to print the array by // removing leading zeros static void removeZeros( int [] a, int n)
{ // index to store the first
// non-zero number
int ind = -1;
// traverse in the array and find the first
// non-zero number
for ( int i = 0; i < n; i++)
{
if (a[i] != 0)
{
ind = i;
break ;
}
}
// if no non-zero number is there
if (ind == -1)
{
Console.Write( "Array has leading zeros only" );
return ;
}
// Create an array to store
// numbers apart from leading zeros
int [] b = new int [n - ind];
// store the numbers removing leading zeros
for ( int i = 0; i < n - ind; i++)
b[i] = a[ind + i];
// print the array
for ( int i = 0; i < n - ind; i++)
Console.Write(b[i]+ " " );
} // Driver Code public static void Main(String []args)
{ int [] a = { 0, 0, 0, 1, 2, 0, 3 };
int n = a.Length;
removeZeros(a, n);
} } // This code contributed by Rajput-Ji |
PHP
<?php // PHP program to print // the array removing // the leading zeros // Function to print the // array by removing // leading zeros function removeZeros( $a , $n )
{ // index to store the
// first non-zero number
$ind = -1;
// traverse in the array
// and find the first
// non-zero number
for ( $i = 0; $i < $n ; $i ++)
{
if ( $a [ $i ] != 0)
{
$ind = $i ;
break ;
}
}
// if no non-zero
// number is there
if ( $ind == -1)
{
echo "Array has leading " .
"zeros only" ;
return ;
}
// Create an array to store
// numbers apart from leading
// zeros b[n - ind];
// store the numbers
// removing leading zeros
for ( $i = 0; $i < $n - $ind ; $i ++)
$b [ $i ] = $a [ $ind + $i ];
// print the array
for ( $i = 0; $i < $n - $ind ; $i ++)
echo $b [ $i ] , " " ;
} // Driver Code $a = array (0, 0, 0, 1, 2, 0, 3);
$n = sizeof( $a );
removeZeros( $a , $n );
// This code is contributed by ajit ?> |
Javascript
<script> // Javascript program to print the array // removing the leading zeros // Function to print the array by
// removing leading zeros
function removeZeros(a , n) {
// index to store the first
// non-zero number
var ind = -1;
// traverse in the array and
// find the first
// non-zero number
for (i = 0; i < n; i++) {
if (a[i] != 0) {
ind = i;
break ;
}
}
// if no non-zero number is there
if (ind == -1) {
document.write( "Array has leading zeros only" );
return ;
}
// Create an array to store
// numbers apart from leading zeros
var b = Array(n - ind).fill(0);
// store the numbers removing leading zeros
for (i = 0; i < n - ind; i++)
b[i] = a[ind + i];
// print the array
for (i = 0; i < n - ind; i++)
document.write(b[i] + " " );
}
// Driver Code
var a = [ 0, 0, 0, 1, 2, 0, 3 ];
var n = a.length;
removeZeros(a, n);
// This code is contributed by todaysgaurav </script> |
Output
1 2 0 3
Time complexity: O(n) where n is the size of the given array
Auxiliary space: O(n) because extra space for array b is used
Recommended Articles