题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
int main()
{
int m, n;
int arr1[2000], arr2[1000];
scanf("%d%d", &m, &n);
for (int i = 0; i < m; i++)
{
scanf("%d", &arr1[i]);
}
for (int i = 0; i < n; i++)
{
scanf("%d", &arr2[i]);
}
int mn = m + n-1, m_ = m-1, n_ = n-1;
while(1)
{
if (arr1[m_] <= arr2[n_])
{
arr1[mn] = arr2[n_];
mn--;
n_--;
}
else
{
arr1[mn] =arr1[m_];
mn--;
m_--;
}
if (n_ == -1)
{
break;
}
if(m_==-1)
{
for (int i = mn; i >= 0;i--)
{
arr1[i] = arr2[n_];
n_--;
}
break;
}
}
for (int i = 0; i <m+n; i++)
{
printf("%d ", *(arr1 + i));
}
return 0;
}
查看18道真题和解析