题解 | #有序序列合并#

有序序列合并

https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>

int main() {
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF) 
    { 
        int arr1[1000] = {0};
        int arr2[1000] = {0};
        int MergedArr[2000] = {0};
        for (int i = 0; i < a; i++)
        {
            scanf("%d",arr1+i);
        }

        for (int j = 0; j < b;j++)
        {
            scanf("%d",arr2+j);
        }

        int i = 0;
        int j = 0;
        int k = 0;
        while (i < a && j < b)
        {
            if (arr1[i] < arr2[j])
            {
                MergedArr[k] = arr1[i];
                i++;
            }
            else if (arr1[i] > arr2[j])
            {
                MergedArr[k] = arr2[j];
                j++;
            }
            else 
            {
                if (i > j)
                {
                    MergedArr[k] = arr2[j];
                    j++;
                }
                else 
                {
                    MergedArr[k] = arr1[i];
                    i++;
                }
            }
            k++;
        }

        if(i < a)
        {
            for (;i < a;i++,k++)
            {
                MergedArr[k] = arr1[i];
            }
        }

        if (j < b)
        {
            for (;j < b;j++,k++)
            {
                MergedArr[k] = arr2[j];
            }
        }
        
        
        
        for (int k = 0; k < (a+b); k++)
        {
            printf("%d ",MergedArr[k]);
        }

    }
    return 0;
}

全部评论

相关推荐

2024-12-21 10:42
已编辑
江西软件职业技术大学 Java
新宿站不停:该提升学历就提升学历,菜了就多练。没事找牛马公司虐自己是吧? 谁没事说自己“经验少”,这不自己把自己塞剎鼻hr嘴里找🐴吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务