题解 | #合并表记录#

合并表记录

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

#include <stdio.h>

int main() {
    int n, i, a[11111112], b[11111112],c[11111112];
    scanf("%d\n", &n);
    for(i=0; i<n; i++){
        scanf("%d %d\n", &a[i], &b[i]);
        // printf("%d %d\n", a[i], b[i]);
    }
    for(i=0; i<n; i++){
        c[a[i]]+=b[i];  //新数组c 序号:a[i],值b[i]
    }

    for(i=0; i<11111112; i++){
        if(c[i]){
            printf("%d %d\n", i, c[i]);
        }
    }
    return 0;

    //解法二简单点的 代码优化
    // int n, i, a[11111112], index ,value;
    // scanf("%d\n", &n);
    // for(i=0; i<n; i++){
    //     scanf("%d %d\n", &index, &value);
    //     // printf("%d %d\n", index, value);
    //     a[index]+=value;
    //     // printf("%d %d\n", index, a[index]);
    // }   
    // printf("%d\n", a[11111110]);

    // for(i=0; i<11111112; i++){
    //     if(a[i]){
    //         printf("%d %d\n", i, a[i]);
    //     }
    // }
    return 0;

}

第一种解法可以完美运行通过,且不会超过内存。

但是想优化下换成第二种就超过内存无法运行通过了,不知道是原因,有大佬帮忙看看吗?

全部评论

相关推荐

01-23 19:12
门头沟学院 Java
榨出爱国基因:你还差 0.1% 就拿到校招礼盒,快叫朋友给你砍一刀吧
投递拼多多集团-PDD等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务