标签:
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
锦囊1
排序后处理。
锦囊2
先排序,对于每个集合的操作,都使用两个指针来指向排序后的集合,对于相同元素特别处理。
Java测试代码
1 package cn.maxin.test; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 import java.util.Scanner; 7 8 public class Main { 9 10 public static void main(String[] args) { 11 12 Scanner sc = new Scanner(System.in); 13 14 int m = sc.nextInt(); 15 List<Integer> ListA = new ArrayList<Integer>(); 16 for (int i = 0; i < m; i++) { 17 ListA.add(sc.nextInt()); 18 } 19 int n = sc.nextInt(); 20 List<Integer> ListB = new ArrayList<Integer>(); 21 for (int i = 0; i < n; i++) { 22 ListB.add(sc.nextInt()); 23 } 24 sc.close(); 25 26 List<Integer> ListU = new ArrayList<Integer>(); 27 ListU.addAll(ListB); 28 ListB.retainAll(ListA); 29 ListA.removeAll(ListB); 30 ListU.addAll(ListA); 31 32 Collections.sort(ListA); 33 Collections.sort(ListB); 34 Collections.sort(ListU); 35 36 for (int i = 0; i < ListB.size(); i++) { 37 System.out.print(ListB.get(i)); 38 System.out.print(i == ListB.size() - 1 ? "\r\n" : ‘ ‘); 39 } 40 for (int i = 0; i < ListU.size(); i++) { 41 System.out.print(ListU.get(i)); 42 System.out.print(i == ListU.size() - 1 ? "\r\n" : ‘ ‘); 43 } 44 for (int i = 0; i < ListA.size(); i++) { 45 System.out.print(ListA.get(i)); 46 System.out.print(i == ListA.size() - 1 ? "\r\n" : ‘ ‘); 47 } 48 } 49 }
标签:
原文地址:http://www.cnblogs.com/maxin/p/5509784.html