题解 | #合并表记录#

合并表记录

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

#include <stdio.h>
int main() {
    typedef  struct {
        int key;
        int value;
    } MapObject;
    MapObject mapObject[1000];
    int total;
    scanf("%d", &total);
    for (int i = 0; i < total; i++) {

        int key, value;
        scanf("%d %d", &key, &value);
        mapObject[i].key = key;
        mapObject[i].value = value;

    }
    for (int i = 0; i < total - 1; i++) {
        for (int j = 0; j < total - 1 - i; j++) {
            if (mapObject[j].key > mapObject[j + 1].key) {
                MapObject temp = mapObject[j];
                mapObject[j] = mapObject[j + 1];
                mapObject[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < total; i++) {
        if (mapObject[i + 1].key == mapObject[i].key)  {
            mapObject[i + 1].value += mapObject[i].value;
            mapObject[i].value = 0;
        }
        if (mapObject[i].value)   printf("%d %d\n", mapObject[i].key, mapObject[i].value);

    }

    return 0;
}

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
黑皮白袜臭脚体育生:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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