题解 | #整型数组合并#
整型数组合并
https://www.nowcoder.com/practice/c4f11ea2c886429faf91decfaf6a310b
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static Set<Integer> merge(int[] arr1, int[] arr2) {
int n1 = arr1.length;
int n2 = arr2.length;
// 保证顺序输出
Set<Integer> set = new LinkedHashSet<>(n1 + n2);
Arrays.sort(arr1);
Arrays.sort(arr2);
int i = 0;
int j = 0;
// 合并少数的元素
while (i < n1 && j < n2) {
if (arr1[i] < arr2[j]) {
set.add(arr1[i++]);
} else {
set.add(arr2[j++]);
}
}
// 合并剩余元素
while (i < n1 || j < n2) {
if (i < n1) {
set.add(arr1[i++]);
}
if (j < n2) {
set.add(arr2[j++]);
}
}
return set;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1 = sc.nextInt();
int[] arr1 = new int[n1];
for (int i = 0; i < n1; i++) {
arr1[i] = sc.nextInt();
}
int n2 = sc.nextInt();
int[] arr2 = new int[n2];
for (int i = 0; i < n2; i++) {
arr2[i] = sc.nextInt();
}
Set<Integer> set = merge(arr1, arr2);
set.forEach(System.out::print);
}
}
途虎成长空间 159人发布