当前位置:网站首页 > 更多 > 编程开发 > 正文

[算法刷题] 试题 算法训练 集合运算

作者:CC下载站 日期:2020-03-19 00:00:00 浏览:61 分类:编程开发

资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给出两个整数集合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
importjava.util.*;
publicclassjiheyunsuan{

	/**
	*@paramargs
	*/
	publicstaticvoidmain(String[]args){
		//TODOAuto-generatedmethodstub
		Scannersc=newScanner(System.in);
		//按照条件获取输入的值
		intn=sc.nextInt();
		int[]list1=newint[n];
		for(inti=0;i<list1.length;i++){
			list1[i]=sc.nextInt();
		}
		intm=sc.nextInt();
		int[]list2=newint[m];
		for(inti=0;i<list2.length;i++){
			list2[i]=sc.nextInt();
		}
		//创建三个列表用于装结果
		ArrayList<Integer>jiaoji=newArrayList<Integer>();
		ArrayList<Integer>bingji=newArrayList<Integer>();
		ArrayList<Integer>buji=newArrayList<Integer>();
		//第一层循环,遍历list1
		for(inti=0;i<list1.length;i++){
			//布尔型的bu表示,默认为这个数是list2在list1中的余集
			booleanbu=true;
			//如果bingji中不包含list1[i]的值,就加到并集中去
			if(!bingji.contains(list1[i])){
				bingji.add(list1[i]);
			}
			for(intj=0;j<list2.length;j++){
				//如果bingji中不包含list2[i]的值,就加到并集中去
				if(!bingji.contains(list2[j])){
					bingji.add(list2[j]);
				}
				//判断交集
				if(list1[i]==list2[j]&&!jiaoji.contains(list1)){
						jiaoji.add(list1[i]);
				}
				//判断余集
				if(list1[i]==list2[j]){
					bu=false;
				}
			}
			//如果补集中不存在则加入列表
			if(bu&&!buji.contains(list1[i])){
				buji.add(list1[i]);
			}
		}
		//列表排序
		Collections.sort(jiaoji);
		Collections.sort(bingji);
		Collections.sort(buji);
		//遍历输出
		for(intj=0;j<jiaoji.size();j++){
			System.out.print(jiaoji.get(j)+"");
		}
		if(jiaoji.size()!=0){
			System.out.println();
		}
		for(intj=0;j<bingji.size();j++){
			System.out.print(bingji.get(j)+"");
		}
		if(bingji.size()!=0){
			System.out.println();
		}
		for(intj=0;j<buji.size();j++){
			System.out.print(buji.get(j)+"");
		}
		
	}
}


您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯