题解 | #有序序列合并#

有序序列合并

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;
}

全部评论

相关推荐

头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务