lintcode 1483. 最高平均分

给出一组学生的名字以及他们的成绩,求最高的平均分(一位学生可能有多门课成绩)

样例
Example 1:

Input:names = ["bob","ted","ted"]
grades=[88,100,20]
Output:88
Example 2:

Input: names = ["john","xisa","xisa","liajd","alice","john","xisa","mark","ted","xlisa"]
grades = [95,83,33,50,78,91,80,67,85,87]
Output:93

思路:利用map统计每个学生的总分,利用count函数得出每个学生计入总分的科目数,简答的平均分计算得到最高即可

class Solution {
public:
    /**
     * @param names: the name
     * @param grades: the grade
     * @return: the maximum average score
     */
    double maximumAverageScore(vector<string> &names, vector<int> &grades) {
        // Write your code here
        double res=0.0;
        map<string,double> sum;
        for (int i = 0; i < names.size(); i++) {
            /* code */
            sum[names[i]]+=grades[i];
        }
        for (auto i : sum) {
            /* code */
            res=i.second/count(names.begin(),names.end(),i.first)>res?i.second/count(names.begin(),names.end(),i.first):res;
        }
        return res;
    }
};
发布了369 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43981315/article/details/103988599