题解 | #整型数组合并#
整型数组合并
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); } }