Given an array of integers. Segregate all the non-zero numbers at the beginning. Print the number of non-zero integers and the minimum number of swaps required for these operations.Eg. : I/p : 1, 0, 0, -6, 2, 0o/p : Number of non-zero integers : 3
import java.util.ArrayList;
/**
* Created by Arun on 8/9/14.
*/
public class ArrayNonZero {
public static void main(String args[]) {
int arr [] = {1, 0, 0, -6, 2, 0};
ArrayList<Integer> nonZero = new ArrayList<Integer>();
ArrayList<Integer> zero = new ArrayList<Integer>();
int i=0;
//get the indexes of the zero and non zero elements
for(int val: arr) {
if(val!=0) {
nonZero.add(i);
}
else {
zero.add(i);
}
i++;
}
int newArr [] = new int[arr.length];
i=0;
//put the non-zero elements at the end and zero element at the beginning
for(int val: nonZero){
newArr[i]=arr[val];
i++;
}
for(int val: zero) {
newArr[i] = arr[val];
i++;
}
for(int val: newArr){
System.out.println(val);
}
}
}
No comments:
Post a Comment