第一行输入一个整数
代表数组
中的元素个数。
第二行输入
个整数
代表数组
中的元素。
第三行输入一个整数
代表数组
中的元素个数。
第四行输入
个整数
代表数组
中的元素。
输出按升序合并、去重后的数组。
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());
}
}
}