赛码网-Light 100%AC代码(C++)

————————————————————————————————————
⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。
⏩最近在准备秋招,一直在练习编程。
⏩本篇文章对赛码网的 Light 题目做一个详解。
⏩感谢你的阅读,不对的地方欢迎指正。
————————————————————————————————————
题目:
赛码网-Light 100%AC代码(C++)_第1张图片
分析:其实这道题不难,只需要记录每一个序号出现的次数就可以了,第一种想法就是定义一个数组,对应的是序号出现的次数,但是题目要求序号的范围是0~2^31-1,所以我们使用哈希表来写:
这里我们使用了C++标准库中的unordered_map来实现哈希表。unordered_map提供了以键值对形式存储数据,并以O(1)的平均复杂度进行插入、查找和删除操作。
通过使用unordered_map,我们可以在遍历输入时统计每个灯泡的被控制次数,并且无需担心序号的范围限制。最后,我们遍历哈希表,计算出被控制次数大于等于1的灯泡数量。

#include 
#include 
using namespace std;
int main()
{
    int n;
    unordered_map<int,int> hash;
    scanf("%d",&n);
    for(int i = 0;i < n;i ++){
        int k;
        scanf("%d",&k);
        for(int j = 0;j < k;j++){
            int bot;
            scanf("%d",&bot);
            hash[bot]++;
        }
    }
    printf("%d",hash.size());
    return 0;
}

代码非常的简单,最后AC100%

你可能感兴趣的:(c++,开发语言)