/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { { int[] a = new int[] {1,2,3,4}; int[] b = new int[] {2,4,5,6,10,7}; int[] result = merge(a,b); } public static int[] merge(int[] arr1, int[] arr2) { int outputSize = arr1.length + arr2.length; int[] output = new int[outputSize]; int j = 0; int i = 0; for (int k = 0; k < outputSize; k++) { if (i >= arr1.length) { while (i < outputSize) { output[k] = arr1[i]; i++; k++; break; } } else if (j >= arr2.length) { while (j < outputSize) { output[k] = arr2[j]; j++; k++; } } if (arr1[i] < arr2[j]) { output[k] = arr1[i]; i++; } else if (arr2[j] < arr1[i]) { output[k] = arr2[j]; j++; } else { output[k] = arr1[i]; k++; output[k] = arr2[j]; i++; j++; } } return output; } }
Standard input is empty
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0] [1, 2, 2, 0, 0, 0, 0, 0, 0, 0] [1, 2, 2, 3, 0, 0, 0, 0, 0, 0] [1, 2, 2, 3, 4, 4, 0, 0, 0, 0]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Ideone.merge(Main.java:30) at Ideone.main(Main.java:14)