将两个有序的整型数组合并成一个新的有序数组且不能有重复元素。
代码实现:
public static int[] mergeArr(int[] arr1, int[] arr2) {
// 变量存储两个数组中被比较的索引
int index1 = 0;
int index2 = 0;
int[] res = new int[arr1.length+arr2.length];
for (int i = 0; i < res.length; i++) {
if(index1 < arr1.length&&index2 <arr2.length) { //两个数组都未遍历完,需要比较后选择加入
if(arr1[index1]>arr2[index2]) {
res[i] = arr2[index2];
index2++;
}else if(arr1[index1]<arr2[index2]) {
res[i] = arr1[index1];
index1++;
}else {
res[i] = arr1[index1];
index1++;
index2++;
}
}else if(index1 < arr1.length) { //数组2已经遍历完,直接将剩余的数组2中的元素依次加入
res[i]= arr1[index1];
index1++;
}else if(index2 < arr2.length) { //数组1已经遍历完,直接将剩余的数组2中的元素依次加入
res[i] = arr2[index2];
index2++;
}
}
return res;
}
public static void main(String[] args) {
int[] arr1 = new int[]{1, 2, 4, 6, 7, 123, 411, 5334, 1414141, 1314141414};
int[] arr2 = new int[]{0, 2, 5, 7, 89, 113, 5623, 6353, 134134};
int[] res = mergeArr(arr1, arr2);
System.out.println(Arrays.toString(res));
}