并集
给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。
我的方法(1)超出时间限制
public static void Union(int []a,int []b){
Set<Integer>set=new HashSet<>();
for (int i:a
) {
set.add(i);
}
System.out.println(set.size());
for (int i:b
) {
set.add(i);
}
System.out.println(set.size());
Iterator<Integer> s=set.iterator();
List<Integer>list=new ArrayList<>();
while(s.hasNext()){
list.add(s.next());
}
Collections.sort(list);
int i=0;
while(i<list.size()){
System.out.print(i);
if (i==(list.size()-1)){
}else{
System.out.print(" ");
}
}
}
我的方法(2)超出时间限制
public static void Union(int []a,int []b){
int len=a.length+b.length;
int []c=new int [len];
for (int i=0;i<len;i++){
if (i<a.length){
c[i]=a[i];
}
else{
c[i]=b[i-a.length];
}
}
Arrays.sort(c);
int i=0;
while(i<c.length){
System.out.print(i);
if (i==(c.length-1)){
}else{
System.out.print(" ");
}
}
}
别人的方法 用TreeSet
public static void main(String[] args){
Scanner in = new Scanner(System.in);
TreeSet<Integer> set = new TreeSet<Integer>();
while(in.hasNext()){
int m = in.nextInt();
int n = in.nextInt();
for(int i=1; i<=m+n; i++){
set.add(in.nextInt());
}
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
System.out.print(it.next());
if(it.hasNext())
System.out.print(" ");
}
}
}