题解 | #有序序列合并#

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

void sort(int* arr1,int* arr2,int* help,int n,int m){
    int p1=0,p2=0,i=0;            //p1,p2当作下标指针
    while(p1<n&&p2<m){      //判断p1,p2是否越界
        help[i++]=arr1[p1]<arr2[p2]?arr1[p1++]:arr2[p2++];  //将arr1[p1]和arr2[p2]中较小的拷贝给help[i]
    }
    while(p1<n)            
        help[i++]=arr1[p1++];       
    while(p2<m)
        help[i++]=arr2[p2++];
}
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    int arr1[1000],arr2[1000];
    int help[2000];
    int i=0;
    for(i=0;i<n;i++)
        scanf("%d",&arr1[i]);
    for(i=0;i<m;i++)
        scanf("%d",&arr2[i]);
    sort(arr1,arr2,help,n,m);
    for(i=0;i<m+n;i++)
        printf("%d ",help[i]);
    return 0;
}

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务