华为測试 整形数组合并

合并输入的两个整形数组并去掉反复的数字按升序输出;

案例输入:3

1 2 5

4

-1 0 3 2

案例输出:-101

#include<iostream>
#include<vector>
using namespace std;
void maopao(vector<int>&arry);
int main()
{
	int N1,N2,num;
	string line;
	vector<int>arry1;
	cin>>N1;
	for(int i=0;i!=N1;++i)
	{
	cin>>num;
	arry1.push_back(num);
	}
	cin>>N2;
	for(int j=0;j!=N2;++j)
	{
	cin>>num;
	arry1.push_back(num);
	}
	maopao(arry1);
	for(vector<int>::iterator iter=arry1.begin()+1;iter!=arry1.end();++iter)
	{
		if(*(iter-1)==*(iter))
		{
			arry1.erase(iter);
			iter=arry1.begin()+1;
		}
	}
	for(vector<int>::iterator iter2=arry1.begin();iter2!=arry1.end();++iter2)
	{
		cout<<*iter2;
	}
	cout<<endl;
	return 0;
}

void maopao(vector<int>&arry)
{
    int temp;
	int k;
	vector<int>::iterator iter;
	vector<int>::iterator iter1;
    for(iter=arry.begin(),k=0;iter!=arry.end();++iter,++k)
    {
        for(iter1=arry.begin()+1;iter1!=arry.end()-k;++iter1)
        {
            if(*(iter1-1)>*iter1)
            {
                temp=*(iter1-1);
                *(iter1-1)=*iter1;
                *iter1=temp;
            }
        }
    }
}  

235

时间: 2024-08-27 12:33:57

华为測试 整形数组合并的相关文章

华为OJ平台——整形数组合并

题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数值 输出: 输出合并之后的数组 输入样例: 3 1 2 5 4 -1 0 3 2 输出样例: -101235 思路: 先将两个数组合并到一个中,然后对这个完整的数组进行排序,最后剔除重复的数据并输出 1 import java.util.Scanner; 2 3 public class Array

华为机试—整形数组异集

求两个整型数组的异集,即A+B-(A与B的交集). 例如a[]={1,2,3,4,5}, b[]={2,3},则a,b的异集为{1,4,5}. #include<iostream> #include<string> using namespace std; int main(int argc,char *argv[]) { int ma,mb; cout << "请输入数组a的长度:"; cin>>ma; cout << &q

华为测试 整形数组合并

合并输入的两个整形数组并去掉重复的数字按升序输出: 案例输入:3 1 2 5 4 -1 0 3 2 案例输出:-101 #include<iostream> #include<vector> using namespace std; void maopao(vector<int>&arry); int main() { int N1,N2,num; string line; vector<int>arry1; cin>>N1; for(i

【华为机试练习】合并表记录

题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出.输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行) 解法(C语言版): #include<stdio.h> #include<stdlib.h> int main() { int n, i, index, value, maxi; int num[1000] = {0};

整形数组合并

import java.util.Iterator; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class CombineArray { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int first = scan.nextInt(); int []fArray

华为測试 超长整数相加

请设计一个算法完毕两个超长正整数的加法. 输入两个字符串数字 输出相加后的结果.string型 例子输入:99999999999999999999999999999999999999999999999999 1 例子输出:100000000000000000000000000000000000000000000000000 #include<iostream> #include<string> using namespace std; string add(string num1,

华为測试 公共子串计算

题目标题: 计算两个字符串的最大公共字串的长度,字符不区分大写和小写 输入两个字符串 输出一个整数 案例输入:asdfas werasdfaswer 案例输出:6 #include<iostream> #include<string> using namespace std; int main() { string str1,str2,temp; int m,MaxNum=0,Len; cin>>str1>>str2; string::size_type i

华为測试 坐标移动

开发一个坐标计算工具, A表示向左移动.D表示向右移动.W表示向上移动,S表示向下移动. 从(0,0)点開始移动,从输入字符串里面读取一些坐标.并将终于输入结果输出到输出文件中面. 输入: 合法坐标为A(或者D或者W或者S) + 数字(两位以内) 坐标之间以;分隔. 非法坐标点须要进行丢弃.如AA10;  A1A;  $%$;  YAD; 等. 以下是一个简单的样例 如: A10;S20;W10;D30;X;A1A;B10A11;;A10; 处理过程: 起点(0,0) +   A10   =  

【华为机试】—— 8.合并表记录

题目 解法 import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); TreeMap<Integer, Integer> map = new TreeMap<>(); int num =