题解 | 有序序列合并

#include <stdio.h>

int main() {
    // int list1[1000];
    // int list2[1000];
    // int list3[2000];
    int n=0;
    int m=0;
    scanf("%d %d",&n,&m);
    int list1[n];
    int list2[m];
    int list3[n+m];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&list1[i]);
    }

    for(int i=0;i<m;i++)
    {
        scanf("%d",&list2[i]);
    }
    int j=0;
    int k=0;
    int z=0;
    while(j<n&&k<m)
    {
       
        if(list1[j]<list2[k])
        {
            list3[z]=list1[j];
            j++;
            z++;
        }
        else
        {
            list3[z]=list2[k];
            k++;
            z++;
        }
    }
    if(j==n)
    {
        while(k<m)
        {
            list3[z]=list2[k];
            k++;
            z++;
        }
    }
    else 
    {
        while(j<n)
        {
            list3[z]=list1[j];
            j++;
            z++;
        }
    }

    for(int i=0;i<n+m;i++)
    {
        printf("%d ",list3[i]);
    }
    return 0;
}

全部评论

相关推荐

黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好 可以看看我帖子简历写法
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务