zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯VIP 算法训练 集合运算

    问题描述
    给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。
    输入格式
    第一行为一个整数n,表示集合A中的元素个数。
    第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。
    第三行为一个整数m,表示集合B中的元素个数。
    第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。
    集合中的所有元素均为int范围内的整数,n、m<=1000。
    输出格式
    第一行按从小到大的顺序输出A、B交集中的所有元素。
    第二行按从小到大的顺序输出A、B并集中的所有元素。
    第三行按从小到大的顺序输出B在A中的余集中的所有元素。
    样例输入
    5
    1 2 3 4 5
    5
    2 4 6 8 10
    样例输出
    2 4
    1 2 3 4 5 6 8 10
    1 3 5
    样例输入
    4
    1 2 3 4
    3
    5 6 7
    样例输出
    1 2 3 4 5 6 7
    1 2 3 4

    第二个可能简短一些

    import java.util.Scanner;
    import java.util.TreeSet;
    
    
    public class 集合运算 {
    	 public static void main(String[] args) {
    	        Scanner in = new Scanner(System.in);
    	        
    	        TreeSet<Integer> treeSetA = new TreeSet<Integer>();
    	        int n = in.nextInt();
    	        for (int i = 0; i < n; i++) {
    	            treeSetA.add(in.nextInt());
    	        }
    	        
    	        TreeSet<Integer> treeSetB = new TreeSet<Integer>();
    	        int m = in.nextInt();
    	        for (int i = 0; i < m; i++) {
    	            treeSetB.add(in.nextInt());
    	        }
    	        in.close();
    	        
    	        printDivide(treeSetA, treeSetB);
    	        printAdd(treeSetA, treeSetB);
    	        printRemain(treeSetA, treeSetB);
    	    }
    	    
    	    public static void printAdd(TreeSet<Integer> a, TreeSet<Integer> b) {
    	        a.addAll(b);
    	        for (int i : a) {
    	            System.out.print(i + " ");
    	        }
    	        System.out.println();
    	    }
    	    
    	    public static void printDivide(TreeSet<Integer> a, TreeSet<Integer> b) {
    	        
    	        @SuppressWarnings("unchecked")
    	        TreeSet<Integer> tempA = (TreeSet<Integer>) a.clone();
    	        a.removeAll(b);
    	        tempA.removeAll(a);
    	        for (int i : tempA) {
    	            System.out.print(i + " ");
    	        }
    	        System.out.println();
    	    }
    	    
    	    public static void printRemain(TreeSet<Integer> a, TreeSet<Integer> b) {
    	        a.removeAll(b);
    	        for (int i : a) {
    	            System.out.print(i + " ");
    	        }
    	        System.out.println();
    	    }
    
    
    }
    
    
    import java.util.Scanner;
    import java.util.TreeSet;
    
    public class Demo1两个集合 {
    	public static void main(String[] args) {
    		TreeSet<Integer> seta = new  TreeSet<Integer>();
    		TreeSet<Integer> setb = new  TreeSet<Integer>();
    		TreeSet<Integer> setab = new  TreeSet<Integer>();
    		 
    		int temp=0;
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		for (int i = 0; i < n; i++) {
    			seta.add(sc.nextInt());
    		}
    		setab.addAll(seta);
    		int m = sc.nextInt();
    		for (int i = 0; i < m; i++) {
    			temp=sc.nextInt();
    			if(seta.add(temp)){
    				
    			}else{
    				setb.add(temp);
    			}
    		}
    		sc.close();
    		setab.removeAll(setb);
    		for(int i:setb){
    			System.out.print(i+" ");
    		}
    		if(setb.size()!=0)
    		System.out.println();
    		for(int i:seta){
    			System.out.print(i+" ");
    		}
    		if(seta.size()!=0)
    		System.out.println();
    		for(int i:setab){
    			System.out.print(i+" ");
    		}
    		 
    				
    	}
    
    }
    
    
  • 相关阅读:
    yolov3计算mAP
    ESP32 ADC的坑
    DCNv2编译过程报错:error: identifier "THCudaBlas_SgemmBatched" is undefined
    Arduino在Lib中输出调试参数
    ESP32获取WT901CTTL/232四元数
    常用公共前端CDN库
    js / php 网站底部版权文字自动改变年份
    以管理员身份在当前目录打开命令行窗口
    【JavaScript】提取字符串里的分数,及计算平均分并与平均分比较输出
    添加谷歌翻译到你的网站
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079203.html
Copyright © 2011-2022 走看看