题目标题:
将两个整型数组按照升序合并,并且过滤掉重复数组元素
详细描述:
接口说明
原型:

voidCombineBySort(int* pArray1,intiArray1Num,int* pArray2,intiArray2Num,int*
pOutputArray,int* iOutputNum);
输入参数:
int* pArray1 :整型数组1

intiArray1Num:数组1元素个数
int* pArray2 :整型数组2
intiArray2Num:数组2元素个数

输出参数(指针指向的内存区域保证有效):
int* pOutputArray:合并后的数组
int*
iOutputNum:合并后数组元素个数
返回值:void

输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数

4.输入第二个数组的数值

样例输入:

3 1 2 5 4 -1 0 3 2
样例输出:
-101235

#include<iostream>
#include<vector>
#include <algorithm> using namespace std; void CombineBySort(int* pArray1,int iArray1Num,int* pArray2,int iArray2Num,int* pOutputArray,int* iOutputNum)
{
int i;
vector<int> array_tmp;
for(i=;i<iArray1Num;i++)
array_tmp.push_back(*(pArray1+i));
for(i=;i<iArray2Num;i++)
array_tmp.push_back(*(pArray2+i));
sort(array_tmp.begin(),array_tmp.end());
//array_tmp.erase(unique(array_tmp.begin(),array_tmp.end()));
vector<int>::iterator it=array_tmp.begin();
vector<int> out;
int tmp=*it;
out.push_back(tmp);
while(it!=array_tmp.end())
{
if(tmp!=*it)
{
tmp=*it;
out.push_back(tmp);
}
it++;
} *iOutputNum=out.size();
for(i=;i<*iOutputNum;i++)
*(pOutputArray+i)=out[i];
} int main()
{
int Num1,Num2,i;
cin >>Num1;
int *Array1=(int*)malloc(Num1*sizeof(int));
for(i=;i<Num1;i++)
cin>>Array1[i];
cin >>Num2;
int *Array2=(int*)malloc(Num2*sizeof(int));
for(i=;i<Num2;i++)
cin>>Array2[i]; int *outputArray=(int*)malloc((Num2+Num1)*sizeof(int));
int outNum=;
CombineBySort(Array1,Num1,Array2,Num2,outputArray,&outNum); for(i=;i<outNum;i++)
cout <<outputArray[i]; free(Array1);
free(Array2);
free(outputArray);
return ;
}

  上述代码使用的是vector容器。也可以使用set容器,见如下:

  华为OJ(整形数组合并)

  vector中去除重复的元素

  在删除相同元素时,有人使用的是STL算法 unique,但其对用的测试用例不行,如 4 1 1 1 1 3 1 1 1;

其输出结果为  111111

  故在本程序中为使用unique算法。


华为oj---合并数组的更多相关文章

  1. 华为OJ平台试题 ——数组:整形数组合并

    代码: /* * 将两个整型数组依照升序合并,而且过滤掉反复数组元素 */ #include <stdio.h> #define N 256 #define M 512 /* * 合并数组 ...

  2. PHP中通过加号合并数组

    通常,我们合并多个数组用的是array_merge()函数,其实,PHP手册中关于数组操作符的介绍给了我们更简单的方法,那就是"+"号,看看下面的例子就明白了(详细了解) 代码: ...

  3. PHP合并数组array_merge函数运算符加号与的区别

    两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数 ...

  4. 华为OJ:火车进站

    火车进站 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号. 输入描述: 有多组测试用例, ...

  5. PHP合并数组保留key值

    PHP合并数组,键值不变   尝试了好几个合并数组的函数, 但是都是把key值重置, 导致key值丢失(因为key值是要用到的) 大大说, 最好用数组的相关函数, 网上随意找了下, 还是没找到. 因为 ...

  6. PHP中使用函数array_merge()合并数组

    如果明白数组其实就是map的话,我想你就会明白array_merge为什么要这么实现了 PHP中合并数组分成两种情况 1.如果这两个数组中有相同的字符串键名: <?php header('Con ...

  7. PHP合并数组+与array_merge的区别分析

    主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最终结果返回,而把后面 ...

  8. PHP 合并数组 追加数组例子

    PHP合并数组我们可以使用array_merge()函数,array_merge()函数返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加.其形式为: arra ...

  9. 在华为oj的两个月

    一次偶然的机会,我接触到华为oj平台(http://career-oj.huawei.com/exam/camLogin.jsp),当时的心情很是兴奋,于是立马注册开通,然后迫不及待地上去做题.刚开始 ...

随机推荐

  1. Struts2---声明式异常处理

    在service方法里 throw抛出一个异常, 然后再方法声明上加上throws: public List<Category> list() throws SQLException{ C ...

  2. [Unity]蓝鸥Untiy-RPC-Sample

    蓝鸥Untiy-RPC-Sample 使用UnityEngine中的NetWork创建的服务器类 LO_GameServer.cs ** 通过该工具类能够在Unity程序中快速的创建一个游戏房间服务器 ...

  3. ubuntu 14.04 安装torch及编译环境zbstudio

    ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...

  4. 用HTML 格式导出Excel

    只需按照如下格式写就可,在<head> 里面嵌套table,必须修改html的命名空间,加上一些描述.保存为xls文件 <html xmlns:x="urn:schemas ...

  5. jascript基础教程学习总结(2)

    摘自:javascript基础教程 用链接对用户进行重定向: js001.html 这个HTML页面基于链接对用户进行重定向 <!DOCTYPE html PUBLIC "-//W3C ...

  6. 推荐一款非常好用的java反编译工具(转)

    源: 推荐一款非常好用的java反编译工具

  7. Masonry布局框架的使用

    Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性.比我们使用自动布局,繁琐的约束条件,好用多了.下面我们来学学masonry的使用方 ...

  8. iOS UICollectionView 长按移动cell

    ref:http://www.jianshu.com/p/31d07bf32d62 iOS 9之后: 示例如下 效果 前言: 看完你可以学到哪些呢? 就是文章标题那么多, 只有那么多. . 手残效果图 ...

  9. js设置文本框只能输入数字

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...

  10. 【转】安卓布局:layout_weight的理解

    android:layout_weight详细分析介绍: 布局文件是:<?xml version="1.0" encoding="utf-8"?>& ...