Amazon Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: In-Person
public class MergeArrays {
public int[] merge(int[] a, int[] b) {
int[] c = new int[a.length + b.length];
int i = 0, j = 0, index = 0;
while (i < a.length && j < b.length)
c[index++] = a[i] < b[j]? a[i++]: b[j++];
if (i == a.length)
while (j < b.length)
c[index++] = b[j++];
else
while (i < a.length)
c[index++] = a[i++];
return c;
}
}
private static int[] merge(int arr1[], int arr2[]) {
int result[] = new int[arr1.length + arr2.length];
int firstCounter = 0;
int second = 0;
for (int i = 0; i < result.length; i++) {
if (firstCounter < arr1.length && second < arr2.length
&& arr1[firstCounter] < arr2[second]) {
result[i] = arr1[firstCounter];
firstCounter++;
} else if (second < arr2.length) {
result[i] = arr2[second];
second++;
} else if (firstCounter < arr1.length) {
result[i] = arr1[firstCounter];
firstCounter++;
} else if (arr1[firstCounter] == arr2[second]) {
result[i] = arr1[firstCounter];
result[i++] = arr1[second];
second++;
firstCounter++;
}
}
return result;
}
- mrmastikhorchandan October 31, 2012