Write a class ReorderArray with a public method reorder that takes one parameter arr of type int[] and returns the arr such that all zeros should come in front of the arr.
Assumptions:
- arr is never null
Here is an example:
Enter no of elements in the arr: 8 Enter elements in the arr seperated by space: 55 0 21 0 63 0 45 0 0 0 0 55 21 63 45
Solution
import java.util.Scanner;
public class ReorderArrayMain{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("Enter no of elements in the arr:");
int n = s.nextInt();
int[] arr = new int[n];
System.out.println("Enter elements in the arr seperated by space:");
for(int i = 0; i < n; i++)
{
arr[i] = s.nextInt();
}
ReorderArray rOrder = new ReorderArray();
int[] result = rOrder.reorder(arr);
for(int j = 0; j < result.length; j++) {
System.out.println(result[j]);
}
}
public int[] reorder(int[] arr) {
//Write your code here
int size = arr.length;
int i = size-1, j=size-1;
while(i >= 0){
if(arr[i] != 0){
arr[j] = arr[i];
j--;
}
i--;
}
while(j >= 0){
arr[j] = 0;
j--;
}
return arr;
}
}
Happy Learning – If you require any further information, feel free to contact me.