题解 | #整型数组合并#

整型数组合并

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);
    }
}

全部评论

相关推荐

06-18 08:36
湖南大学 Java
运营你豪哥:没啥拷打的 1.增加量化结果,现在有点缺效果数据 2.突出复杂性,现在的项目描述有点像功能清单,强调一下技术难点和解决方案。
不给转正的实习,你还去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务