题解(C++容器) | #分组统计#

分组统计

https://www.nowcoder.com/practice/5cb47b86911c4aa48722e531a51ec823

#include <array>
#include <iostream>
#include <map>
#include <vector>
using namespace std;

int main() {
    int m, n, t;
    cin >> m;
    while (m--) {
        cin >> n;
        vector<int> number; //记录输入的数
        vector<int> group_id; //记录对应分组
        map<int, int> elem;
        for(int i=0; i<n; i++){
            cin >> t;
            elem[t]=0;  // map初始化,记录出现过的元素
            number.push_back(t);
        }
        map<int, map<int, int>> group;
        for(int i=0; i<n; i++){
            cin >> t;
            group[t]= elem; //分组初始化
            group_id.push_back(t);
        }
        for(int i=0; i<n; i++){
            group[group_id[i]][number[i]] ++;
        }
        for(auto &i : group){
            cout<< i.first <<"={";
            for(auto &j : i.second){
                if(j.first == i.second.rbegin()->first){
                    cout<< j.first << "=" << j.second;
                }else {
                    cout<< j.first << "=" << j.second <<",";
                }
            }
            cout <<"}" <<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

白火同学:先说结论,对于一份实习简历来说,整体还是挺不错的,技术深度和广度都到位,找到一份中小厂的实习没啥问题。 再说说能优化的点吧。 1、量化结果,项目中很多工作量化一下结果给面试官的感受会更直观一些,也能体现你对应用该项技术的理解(在众多技术为什么要用它,运行性能或者说开发效率往往是一大考虑指标;而不是说大家做这种功能都用它,所以我用它)。 2、突出亮点,项目中可以从“工作职责”择一些“个人亮点”另写一块,优先去写开发过程中遇到的xx问题,使用xx技术达到xx效果,针对性去写一些疑杂难的功能,能带出你个人思考和解决的过程。
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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