题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <iostream>
using namespace std;
int main()
{
int n1, n2;
cin >> n1 >> n2;
int arr1[n1], arr2[n2];
for (int i = 0; i < n1; i++)
{
cin >> arr1[i];
}
for (int i = 0; i < n2; i++)
{
cin >> arr2[i];
}
int arr3[n1 + n2];
int i = 0, j = 0, k = 0;
for (i = 0; i < n1 + n2; i++)
{
if (arr1[j] < arr2[k] && j < n1 && k < n2)
{
arr3[i] = arr1[j];
j++;
}
else if (arr1[j] >= arr2[k] && j < n1 && k < n2)
{
arr3[i] = arr2[k];
k++;
}
else
{
break;
}
}
if (j < n1)
{
while (i < n1 + n2)
{
arr3[i] = arr1[j];
i++;
j++;
}
}
else if (k < n2)
{
while (i < n1 + n2)
{
arr3[i] = arr2[k];
i++;
k++;
}
}
for (int i = 0; i < n1 + n2; i++)
{
cout << arr3[i] << " ";
}
return 0;
}
