注意多次征集的情况有哪些

时间:2023/8/8 4:49:53 编辑:福途教育 标签:填报志愿

榜单说明:福途教育网榜单是基于互联网大数据统计及人为根据市场和参数条件变化的分析而得出本站站内排序,排名不分先后,仅供参考。

2024年【填报志愿】申请条件/费用/专业咨询 >>

填报志愿申请条件是什么?填报志愿费用是多少?填报志愿专业都有哪些?

点击咨询

    本文解答了关于《注意多次征集的情况》相关内容,同时关于1、注意多次征集的情况有哪些,2、多次征集志愿是什么意思,3、多次征求意见,的相关问答本篇文章福途教育网小编也整理了进来,希望对您有帮助。

    注意多次征集的情况有哪些

    注意多次征集的情况

    /**

    * @param {string[]} votes

    * @return {string}

    */

    //计数

    var rankTeams = function (votes) {

    if (votes.length < 2) return votes[0];

    let map = {};

    let len = votes[0].length;

    votes.forEach((vote) => {

    // console.log(vote);

    for (let i = 0; i < len; i++) {

    // console.log(vote[i]);

    if (map[vote[i]]) {

    map[vote[i]][i] = map[vote[i]][i] + 1

    1;

    } else {

    map[vote[i]] = new Array(len).fill(0);

    map[vote[i]][i] = 1;

    }

    }

    });

    let teamArr = Object.keys(map);

    teamArr.sort((t1, t2) => {

    for (let j = 0; j < len; j++) {

    if (map[t1][j] < map[t2][j]) {

    return 1;

    }

    if (map[t1][j] > map[t2][j]) {

    return -1;

    }

    }

    return t1 > t2 ? 1 : -1;

    });

    return teamArr.join("");

    };

    //桶排序 + 双端队列

    var rankTeams = function (votes) {

    // 初始化桶数组,长度与最后要排序的字符串长度一致

    let len = votes[0].length;

    let buckets = new Array(len);

    for (let i = 0; i < buckets.length; i++) {

    buckets[i] = new Array(26).fill(0);

    }

    // 统计每个组员和对应位置票数放到桶里,桶里放的是组员索引+1

    for (let i = 0; i < votes.length; i++) {

    for (let j = 0; j < votes[i].length; j++) {

    buckets[j][votes[i][j].charCodeAt() - "A".charCodeAt()] += 1;

    }

    }

    // 使用一个队列来存储组员组合后的最终结果字符串

    let teamResult = new Array(len);

    for (let i = len - 1; i >= 0; --i) {

    // 如果队列是空的话,双端队列的顶点就是存放对应位置最大票数的字符

    let max = 0;

    let character = "A";

    // 由小到大查看桶里的组员索引

    for (let j = 0; j < 26; j++) {

    if (buckets[i][j] > max) {

    max = buckets[i][j];

    character = String.fromCharCode("A".charCodeAt() + j);

    }

    // 所有组员都一样,所以存在票数相等的情况,此时把大写字母顺序小的放在列首

    else if (max > 0 && buckets[i][j] === max) {

    if (String.fromCharCode("A".charCodeAt() + j) < character) {

    character = String.fromCharCode("A".charCodeAt() + j);

    }

    }

    }

    // 将最后查看出来的字符推到队列中

    teamResult[i] = character;

    }

    return teamResult.join("");

    };

    总结:以上是编辑:【殷果】整理及AI智能原创关于《

    注意多次征集的情况

    》优质内容解答希望能帮助到您。
了解 【填报志愿】更多资讯
以上手机版 注意多次征集的情况有哪些 小编为您整理注意多次征集的情况有哪些的全部内容,以上内容仅供参考。
上一篇:深圳一级建造师课程培训多少钱
下一篇:会计考研可以选择什么专业

热门推荐

最新文章