题目标题:
将两个整型数组按照升序合并,并且过滤掉重复数组元素
接口说明:
原型:void CombineBySort(int* pArray1,int iArray1Num,int* pArray2,int iArray2Num,int* pOutputArray,int* iOutputNum);
输入参数:
int* pArray1 :整型数组1
intiArray1Num:数组1元素个数
int* pArray2 :整型数组2
intiArray2Num:数组2元素个数
输出参数(指针指向的内存区域保证有效):
int* pOutputArray:合并后的数组
int* iOutputNum:合并后数组元素个数
返回值: void
知识点: 排序,数组
输入:
第一个数组的个数
第一个数组的数值
第二个数组的个数
第二个数组的数值
输出:
合并之后的数组
样例输入:
3
1 2 5
4
-1 0 3 2
样例输出:
-101235
代码:
#include <iostream>
using namespace std;
void Init(int* num, int len)
{
for (int i = 0; i < len; i++)
cin >> num[i];
}
void Link(int* num, int* num1,int* num2,int len1,int len2)
{
int i;
for (i = 0; i < len1; i++)
num[i] = num1[i];
for (i = len1; i < len1 + len2; i++)
num[i] = num2[i-len1];
}
void Sort(int* num, int len)
{
int i, j,temp;
for (i = 0; i < len - 1; i++)
for (j = i + 1; j < len; j++)
if (num[i]>num[j])
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
void Output(int* num, int len)
{
int temp = 65535, i;
for (i = 0; i < len; i++)
if (num[i] != temp)
{
cout << num[i];
temp = num[i];
}
cout << endl;
}
int main()
{
int len1, len2, len, i, j, temp;
cin >> len1;
int* num1 = (int*)malloc(len1*sizeof(int));
Init(num1, len1);
cin >> len2;
int* num2 = new int[len2];
Init(num2, len2);
len = len1 + len2;
int* num = new int[len];
Link(num, num1, num2, len1, len2);
Sort(num, len);
Output(num, len);
return 0;
}
| 得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
| 100(100) | 47ms | 2068KB | 4 | 4 |
该博客介绍了一个接口CombineBySort,用于将两个已排序的整型数组按升序合并并去除重复元素。输入参数包括两个整型数组及它们的元素个数,输出为合并后的数组及其元素个数。博客提供了样例输入和输出,展示如何合并[-1, 0, 3, 2]和[1, 2, 5]得到[-1, 0, 1, 2, 3, 5]。"
97393674,8725556,Oracle11.2.0.4静默安装响应文件及跳过检查技巧,"['Oracle数据库', '安装教程', '静默模式', '免费安装', '配置选项']
574

被折叠的 条评论
为什么被折叠?



