这是一个真实的面试题:题目要求合并2个有序的数组到一个数组中。
例如:int[] = new int[]{1,3,5}; int[] b = new int[]{2,4,6}; 合并完的结果是:[1,2,3,4,,5,6]
我的java代码实现如下:
public class MergeSortedArray {
public static void main(String[] args) {
int[] a = new int[]{11, 23, 33};
int[] b = new int[]{2, 4, 6};
int[] merged = mergeTowSortedArray(a, b);
for (int i : merged){
System.out.println(i);
}
}
/**
*
* @param a
* @param b
* @return
*/
public static int [] mergeTowSortedArray(int[] a, int[] b){
int[] c = new int[a.length + b.length];
int i = 0, j = 0, k = 0;
while (i < a.length || j < b.length){
//a数据已经遍历完了,
if (i >= a.length){
c[k++] = b[j];
j++;
continue;
}
if (j >= b.length){
c[k++] = a[i];
i++;
continue;
}
if (a[i] <= b[j]){
c[k++] = a[i];
i++;
continue;
}
c[k++] = b[j];
j++;
}
return c;
}
}
转载于:https://blog.51cto.com/leokongwq/1702148