0%

从通过投票对团队排名学习sort函数使用

2020年3月11日 下午12:02
1366. 通过投票对团队排名

  • return 1:第一个元素在前
  • return 0:第二个元素在前
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class Solution {
    public:
    string rankTeams(vector<string>& votes) {
    int m = votes.size();
    string v = votes[0]; // 准备1:排序对象
    map<char, map<int, int>> f; // 准备2:排序根据

    // 统计:Build array rank where rank[i][j] is the number of votes for team i to be the j-th rank.
    for (auto s : votes)
    {
    for (int i = 0; i < s.size(); ++ i)
    f[s[i]][i] ++;
    }
    sort(v.begin(), v.end(), [&](char a, char b) -> bool
    {
    // 思考,有哪些条件就可以返回了?
    for (int i = 0; i < v.size(); ++ i)
    {
    if (f[a][i] > f[b][i]) return 1;// 返回条件1
    if (f[a][i] < f[b][i]) return 0;// 返回条件2
    }
    return a < b; // 返回条件三
    });
    return v;
    }
    };