严氏北美IT公司面试真题汇总和解答论坛
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Merge K Sorted Array

Go down

Merge K Sorted Array Empty Merge K Sorted Array

Post by Admin Sat Oct 21, 2017 4:51 pm

static class ArrayContainer {
int[] array;
int index;
public ArrayContainer(int[] array, int index) {
this.array = array;
this.index = index;
}
}

public static int[] mergeKSortedArray(int[][] inputArrays) {
PriorityQueue<ArrayContainer> pq = new PriorityQueue<ArrayContainer>(inputArrays.length, new Comparator<ArrayContainer>(){
       public int compare(ArrayContainer a,ArrayContainer b){
           return a.array[a.index]-b.array[b.index];
       }
});
int total=0;
for (int i = 0; i < inputArrays.length; i++) {
pq.add(new ArrayContainer(inputArrays[i], 0));
total = total + inputArrays[i].length;
}
int m=0;
int res[] = new int[total];
while(!pq.isEmpty()){
ArrayContainer ac = pq.poll();
res[m++]=ac.array[ac.index];
if(ac.index < ac.array.length-1)
pq.add(new ArrayContainer(ac.array, ac.index+1));
}
return res;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 1, 3, 5, 7 };
int[] arr2 = { 2, 4, 6, 8 };
int[] arr3 = { 0, 9, 10, 11 };
int[] result = mergeKSortedArray(new int[][] { arr1, arr2, arr3 });
System.out.println(Arrays.toString(result));
}

Admin
Admin

Posts : 124
Join date : 2017-10-21

https://csinterviewquestions.forumotion.com

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum