有序序列合并 题解

有序序列合并

http://www.nowcoder.com/questionTerminal/a9e943b0dab142759807d0cfb6863897

思路1:合并后用sort排序,输出

#include<bits/stdc++.h>
using namespace std;
int a,b;
int t[205];
int main(){
    scanf("%d%d",&a,&b);
    a += b;
    for(int i = 1;i <= a;i ++) scanf("%d",&t[i]);
    sort(t+1,t+a+1);
    for(int i = 1;i <= a;i ++) printf("%d ",t[i]);
}

我是分割线


思路2:桶排(大佬们看看这是怎么了,没过,才90分)
(执行结果:段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起case通过率为90.00%)

#include<stdio.h>
int a,b;
int tmp;
int t[5005];
int main(){
    scanf("%d%d",&a,&b);
    a += b;
    for(int i = 1;i <= a;i ++){
        scanf("%d",&tmp);
        t[tmp] ++;
    }
    for(int i = 1;i <= 5000;i ++)
        for(int j = 1;j <= t[i];j ++) printf("%d ",i);
}
全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务