第一行输入一个整数
代表数组
中的元素个数。
第二行输入
个整数
代表数组
中的元素。
第三行输入一个整数
代表数组
中的元素个数。
第四行输入
个整数
代表数组
中的元素。
输出按升序合并、去重后的数组。
3 1 2 5 4 -1 0 3 2
-101235
在这个样例中,拼接后得到
,去重后得到
,排序后得到
。
1 11 1 111
11111
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ int size1 = scanner.nextInt(); Set<Integer> set1 = new TreeSet<>(); for (int i = 0; i < size1; i++) { set1.add(scanner.nextInt()); } int size2 = scanner.nextInt(); for (int i = 0; i < size2; i++) { set1.add(scanner.nextInt()); } for (int value:set1) { System.out.print(value); } System.out.println(); } } }
#include<iostream> #include<set> using namespace std; int main() { int num, tmp; while (cin >> num) { set<int> res; while (num--) { cin >> tmp; res.insert(tmp); } cin >> num; while (num--) { cin >> tmp; res.insert(tmp); } for (auto i : res) cout << i; cout << endl; } }
这一题牛客的OJ是不是有问题,在华为的OJ都通过了,牛客竟然不过 #include <iostream> #include <vector> #include <set> using namespace std; int main() { int n,m; int val,temp; set<int>result; while(cin>>n) { while(n--) { cin>>val; result.insert(val); } cin>>m; while(m--) { cin>>temp; result.insert(temp); } set<int>::const_iterator it; for(it=result.begin();it!=result.end();it++) { cout<<*it; } result.clear(); } return 0; }
#include<iostream> #include<string> #include<vector> #include <algorithm> using namespace std; int main() { int M,N; vector<int> vec; while(cin>>M) { int temp; for(int i=0;i<M;i++) { cin>>temp; vec.push_back(temp); } cin>>N; for(int i=0;i<N;i++) { cin>>temp; vec.push_back(temp); } sort(vec.begin(),vec.end()); cout<<vec[0]; for(int i=1;i<vec.size();i++) { if(vec[i]==vec[i-1]) continue; cout<<vec[i]; } //注意,(1)不能输出换行(之前我在输出结束后加了一个换行,就通不过测试用例); //(2)vector要清除数据(没有这个一直没让我通过); vec.clear(); } return 0; }
import java.util.Scanner; import java.util.Set; import java.util.HashSet; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { Set<Integer> set = new HashSet<>(); // 1.输入两个数组 int n1 = sc.nextInt(); for(int i=0; i<n1; i++) { set.add(sc.nextInt()); } int n2 = sc.nextInt(); for(int i=0; i<n2; i++) { set.add(sc.nextInt()); } // 2.将set转为数组 int[] arr = new int[set.size()]; int index = 0; for(Integer i : set) { arr[index++] = i; } // 3.排序数组,输出结果 Arrays.sort(arr); for(int i : arr) { System.out.print(i); } } } }
#include<set> #include<iostream> using namespace std; int main(){ int na,nb,temp; while(cin>>na){ set<int> a; for(int i=0;i<na;i++){ cin>>temp; a.insert(temp); //数组1加入a } cin>>nb; for(int i=0;i<nb;i++){ cin>>temp; a.insert(temp); // 数组2继续加入a } for(auto it=a.begin();it!=a.end();it++) cout<<*it; // 输出值 cout<<endl; } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.TreeSet; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s; while ((s = br.readLine()) != null) { String[] s1 = br.readLine().split(" "); String s2 = br.readLine(); String[] s3 = br.readLine().split(" "); TreeSet<Integer> set = new TreeSet<>(); for (String str : s1) { set.add(Integer.parseInt(str)); } for (String s4 : s3) { set.add(Integer.parseInt(s4)); } for (Integer n : set) { System.out.print(n); } System.out.println(); } } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { Set<Integer> set = new TreeSet<>(); int num1 = in.nextInt(); for (int i = 0; i < num1; i++) { set.add(in.nextInt()); } int num2 = in.nextInt(); for (int i = 0; i < num2; i++) { set.add(in.nextInt()); } for (int i : set) { System.out.print(i); } System.out.println(); } } }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ Set<Integer> composite = new TreeSet<>(); int size1 = scanner.nextInt(); for (int i = 0; i < size1; i++){ composite.add(scanner.nextInt()); } int size2 = scanner.nextInt(); for (int i = 0; i < size2; i++){ composite.add(scanner.nextInt()); } for (Integer i : composite){ System.out.print(i); } System.out.print("\n"); } } }
import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); Set<Integer> set = new TreeSet<>(); for (int i = 0; i < n; i++) set.add(sc.nextInt()); n = sc.nextInt(); for (int i = 0; i < n; i++) set.add(sc.nextInt()); for (Integer integer : set) System.out.print(integer); System.out.println(); } } }
#include <bits/stdc++.h> using namespace std; int main(){ for(int n,val;cin>>n;){ set<int> sint; //set容器:去重,默认从小到大自动排序 for(int i=0;i<n;++i){ cin>>val; sint.insert(val); } cin>>n; for(int i=0;i<n;++i){ cin>>val; sint.insert(val); } for(auto i:sint) cout << i; cout << endl; } }
#include<set> (855)#include<iostream> #include<stdlib.h> using namespace std; void Merge_integer_arrays() { // 方法: 基于set自动去重排序功能实现 int num; set<int> ans; int temp; int flag = 0; while (cin >> num) { flag++; for (int i = 0; i < num; i++) { cin >> temp; ans.insert(temp); } if (flag == 2) { flag = 0; for (auto it = ans.begin(); it != ans.end(); it++) { cout << *it; } cout << endl; ans.clear(); } } } int main() { Merge_integer_arrays(); system("pause"); return 0; }
//把两个数组直接合为一个,排序后输出 #include<iostream> #include<algorithm> using namespace std; int main(){ int m,n; while(cin>>m){ int* a1=new int[m]; for(int i=0;i<m;i++) cin>>a1[i]; cin>>n; int* a2=new int[n]; for(int i=0;i<n;i++) cin>>a2[i]; int* a3=new int[m+n]; for(int i=0;i<m;i++) a3[i]=a1[i]; for(int i=0;i<n;i++) a3[i+m]=a2[i]; sort(a3,a3+m+n); cout<<a3[0]; for(int i=1;i<m+n;i++) if(a3[i-1]!=a3[i]) cout<<a3[i]; cout<<endl; } }
#include<iostream> #include<set> using namespace std; int main() { int num,num1,num2; while(cin>>num1) { set<int> res; while(num1--) { cin>>num; res.insert(num); } cin>>num2; while(num2--) { cin>>num; res.insert(num); } set<int>::iterator iter; for(iter = res.begin();iter!= res.end();iter++) { cout<<*iter; } cout<<endl; res.clear(); } return 0; }这个题很简单,因为需要升序排列两个数组中的元素,所以使用STL中的set最为简单,因为set中的元素都是按升序排列的,所以直接输入到set中就OK。
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (sc.hasNext()) { Set<Integer> set = new TreeSet<Integer>(); int n1 = sc.nextInt(); for(int i=0; i<n1; i++) { set.add(sc.nextInt()); } int n2 = sc.nextInt(); for(int i=0; i<n2; i++) { set.add(sc.nextInt()); } for(Integer i : set) { System.out.print(i); } System.out.println(); } } }
#include <bits/stdc++.h> using namespace std; int main() { int n; while (cin >> n) { int m; vector<int> num1; for(int i=0;i<n;i++) { cin>>m; num1.push_back(m); } int n1; cin>>n1; for(int i=0;i<n1;i++) { cin>>m; num1.push_back(m); } sort(num1.begin(),num1.end()); cout<<num1[0]; for(int i=1;i<num1.size();i++) { if(num1[i]!=num1[i-1]) cout<<num1[i]; } cout<<endl; } system("pause"); return 0; }
#include<iostream> #include<string> #include<vector> using namespace std; int main() { int m,n; int buf; while(cin>>m) { vector<int>a; vector<int>b; vector<int>c; while(m--) { cin>>buf; a.push_back(buf); } cin>>n; while(n--) { cin>>buf; b.push_back(buf); } c=a; for(int i=0;i<b.size();i++) { if(find(c.begin(),c.end(),b[i])==c.end()) c.push_back(b[i]); } sort(c.begin(),c.end()); for(int i=0;i<c.size();i++) { cout<<c[i]; } cout<<endl; } return 0; }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); TreeSet<Integer> set = new TreeSet<Integer>(); for(int i=0;i<n;i++){ set.add(sc.nextInt()); } int m = sc.nextInt(); for(int i=0;i<m;i++){ set.add(sc.nextInt()); } Iterator it = set.iterator(); StringBuffer sb = new StringBuffer(); while(it.hasNext()){ sb.append(it.next()); } System.out.println(sb.toString()); } } }