JavaStudy——0053:集合合并

总时间限制: 3000ms 内存限制: 50000kB

描述
已知集合A与集合B,且第个集合内数据是唯一的。求A,B集合合并成新的集合C,要求C集合内的数据也是唯一的。并指出C集合的个数。

输入
三行,第一行分别为集合A,B的个数
第二行为A集合的数据
第三行为B集合的数据
输出
两行
第一行集合C的个数
第二行为C集合的数据

样例输入

4 5
12 34 56 78
34 67 89 34 76

样例输出

7
12 34 56 78 67 89 76

Accepted代码

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int[] a=new int[100];
        int ans=0;
        int n=in.nextInt();
        int m=in.nextInt();
        for (int i=0;i<n;i++)
            a[i]=in.nextInt();
        for (int i=n;i<m+n;i++)
            a[i]=in.nextInt();
        for(int i=0;i<m+n;i++)
            for(int j=0;j<i-1;j++)
                if(a[i]==a[j] && a[i]!=300000) {
                    ans++;a[i]=300000;
                }
        System.out.println(m+n-ans);
        for (int i=0;i<m+n;i++)
            if(a[i]!=300000)
            System.out.print(a[i]+" ");
        in.close();
    }
}

另:

import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        Set<Integer> set=new LinkedHashSet<Integer>();
        int m=in.nextInt();
        int n=in.nextInt();
        for(int i=0;i<m+n;i++) {
            set.add(in.nextInt());
        }
        System.out.println(set.size());
        for(Integer i:set) {
            System.out.print(i+" ");
        }
        in.close();
    }
}

你可能感兴趣的:(javastudy,Java,OpenJudge,-,javastudy)