zoukankan      html  css  js  c++  java
  • (Set) {A} + {B} hdu1412

    {A} + {B}
     
    Problem Description
    给你两个集合,要求{A} + {B}.
    注:同一个集合中不会有两个相同的元素.
     
    Input
    每组输入数据分为三行,第一行有两个数字n,m(0<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.
     
    Output
    针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.
     
    Sample Input
    1 2
    1
    2 3
    1 2
    1
    1 2
     
    Sample Output
    1 2 3
    1 2
     
    Author
    xhd
     
    可以用JAVA的Set类来写,就是hdu对此的判定并不严格。
    JAVA代码:
    import java.math.BigDecimal;
    import java.util.Iterator;
    import java.util.Scanner;
    import java.util.Set;
    import java.util.TreeSet;
    
    import javax.swing.plaf.basic.BasicArrowButton;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner inScanner = new Scanner(System.in);
            while(inScanner.hasNext()) {
                int m = inScanner.nextInt();
                int n = inScanner.nextInt();
                Set<Integer> set = new TreeSet<>();
                for(int i = 0; i < m;i++) {
                    int x = inScanner.nextInt();
                    set.add(x);
                }
                for(int i = 0 ;i < n;i++) {
                    int x = inScanner.nextInt();
                    if(!set.contains(x)) {
                        set.add(x);
                    }
                }
                //for循环遍历。
    //            for(Integer integer:set) {
    //                System.out.print(integer + " ");
    //            }
    //            System.out.print("
    ");
                
                //一般迭代遍历。
                Iterator<Integer> iterator = set.iterator();
                while(iterator.hasNext()) {
                    int i = iterator.next();
                    System.out.print(i + " ");
                }
                System.out.print("
    "); //这个很重要,虽然最后一个数的后面有个空格,但是会AC,并且如果用println(),会WA。
            }
        }
    
    }

    C++代码:

    #include <iostream>
    #include <set>
    using namespace std;
    int main()
    {
        set<int> a; //可以只用一个集合表示A和B的并集。
         int m,n;
         while(cin>>m>>n){
            a.clear(); //必须要用,相当于初始化。
             while(m--){
                 int i;
            cin>>i;
            a.insert(i);
            }
            while(n--){
                int i;
                cin>>i;
                a.insert(i);
            }
        int i=0; //注意领会。
        set<int>::iterator it=a.begin();
        for(;it!=a.end();it++,i++){
             if(i==0)
             cout<<*it;
             else
             cout<<" "<<*it;
        }
             cout<<endl;
        }
        return 0;
    }
     
     
  • 相关阅读:
    linux 命令——48 watch (转)
    linux 命令——47 iostat (转)
    linux 命令——46 vmstat(转)
    linux 命令——45 free(转)
    linux 命令——44 top (转)
    linux 命令——43 killall(转)
    linux 命令——42 kill (转)
    linux 命令——41 ps(转)
    linux 命令——40 wc (转)
    Java for LeetCode 068 Text Justification
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/9174851.html
Copyright © 2011-2022 走看看