LeetCode 1366. 通过投票对团队排名(自定义排序)

1. 题目

现在有一个特殊的排名系统,依据参赛团队在投票人心中的次序进行排名,每个投票者都需要按从高到低的顺序对参与排名的所有团队进行排位。

排名规则如下:

  • 参赛团队的排名次序依照其所获「排位第一」的票的多少决定。如果存在多个团队并列的情况,将继续考虑其「排位第二」的票的数量。以此类推,直到不再存在并列的情况。
  • 如果在考虑完所有投票情况后仍然出现并列现象,则根据团队字母的字母顺序进行排名。

给你一个字符串数组 votes 代表全体投票者给出的排位情况,请你根据上述排名规则对所有参赛团队进行排名。

请你返回能表示按排名系统 排序后 的所有团队排名的字符串。

示例 1:
输入:votes = ["ABC","ACB","ABC","ACB","ACB"]
输出:"ACB"
解释:A 队获得五票「排位第一」,没有其他队获得「排位第一」,所以 A 队排名第一。
B 队获得两票「排位第二」,三票「排位第三」。
C 队获得三票「排位第二」,两票「排位第三」。
由于 C 队「排位第二」的票数较多,所以 C 队排第二,B 队排第三。示例 2:
输入:votes = ["WXYZ","XYZW"]
输出:"XWYZ"
解释:X 队在并列僵局打破后成为排名第一的团队。
X 队和 W 队的「排位第一」票数一样,但是 X 队有一票「排位第二」,
而 W 没有获得「排位第二」。 示例 3:
输入:votes = ["ZMNAGUEDSJYLBOPHRQICWFXTVK"]
输出:"ZMNAGUEDSJYLBOPHRQICWFXTVK"
解释:只有一个投票者,所以排名完全按照他的意愿。示例 4:
输入:votes = ["BCA","CAB","CBA","ABC","ACB","BAC"]
输出:"ABC"
解释: 
A 队获得两票「排位第一」,两票「排位第二」,两票「排位第三」。
B 队获得两票「排位第一」,两票「排位第二」,两票「排位第三」。
C 队获得两票「排位第一」,两票「排位第二」,两票「排位第三」。
完全并列,所以我们需要按照字母升序排名。示例 5:
输入:votes = ["M","M","M","M"]
输出:"M"
解释:只有 M 队参赛,所以它排名第一。 提示:
1 <= votes.length <= 1000
1 <= votes[i].length <= 26
votes[i].length == votes[j].length for 0 <= i, j < votes.length
votes[i][j] 是英文 大写 字母
votes[i] 中的所有字母都是唯一的
votes[0] 中出现的所有字母 同样也 出现在 votes[j] 中,
其中 1 <= j < votes.length

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rank-teams-by-votes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 题目意思:类似奥运会金牌榜排名
vector<vector<int>> c;
bool cmp(char& a, char& b)
{for(int j = 0; j < 26; j++){if(c[a-'A'][j] == c[b-'A'][j])continue;return c[a-'A'][j] > c[b-'A'][j];}return a < b;
}
class Solution {
public:string rankTeams(vector<string>& votes) {int i, j;c.clear();//全局变量记得清空,leetcode每次调用不会清空vector<int> t(26,0);for(i = 0; i < 26; ++i)c.push_back(t);for(i = 0; i < votes.size(); i++){for(j = 0; j < votes[i].size(); j++)c[votes[i][j]-'A'][j]++;}sort(votes[0].begin(), votes[0].end(), cmp);return votes[0];}
};
  • lambda表达式简洁,注意!!![&]里面写&才可以识别外部变量,表示以引用传入
class Solution {
public:string rankTeams(vector<string>& votes) {int i, j;vector<vector<int>> c(26,vector<int>(26,0));for(i = 0; i < votes.size(); i++){for(j = 0; j < votes[i].size(); j++)c[votes[i][j]-'A'][j]++;}sort(votes[0].begin(), votes[0].end(), [&](auto a, auto b){for(int j = 0; j < 26; j++){if(c[a-'A'][j] == c[b-'A'][j])continue;return c[a-'A'][j] > c[b-'A'][j];}return a < b;});return votes[0];}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中使用JdbcTemplate访问数据库

之前介绍了很多Web层的例子&#xff0c;包括构建RESTful API、使用Thymeleaf模板引擎渲染Web视图&#xff0c;但是这些内容还不足以构建一个动态的应用。通常我们做App也好&#xff0c;做Web应用也好&#xff0c;都需要内容&#xff0c;而内容通常存储于各种类型的数据库&#…

LeetCode 1367. 二叉树中的列表(双重递归)

1. 题目 给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。 如果在二叉树中&#xff0c;存在一条一直向下的路径&#xff0c;且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值&#xff0c;那么请你返回 True &#xff0c;否则返回 False 。 一直向…

Spring Boot构建RESTful API与单元测试

首先&#xff0c;回顾并详细说明一下在快速入门中使用的Controller、RestController、RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例&#xff0c;建议先看一下快速入门的内容。 Controller&#xff1a;修饰class&#xff0c;用来创建处理http请…

推荐系统用户反馈延迟新解法!阿里提出CVR无偏估计算法

文 | Shona在广告、电商场景中&#xff0c;流式样本通常只会在一个较短的窗口采样用户的行为&#xff0c;但用户从点击到转化的时间窗口可能很长&#xff0c;比如逛淘宝时&#xff0c;点击一件商品后可能在其他平台对比很久后才会下单&#xff0c;这导致在流式样本采样的时间窗…

LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)

1. 题目 给你一个 m x n 的网格图 grid 。 grid 中每个格子都有一个数字&#xff0c;对应着从该格子出发下一步走的方向。 grid[i][j] 中的数字可能为以下几种情况&#xff1a; 1 &#xff0c;下一步往右走&#xff0c;也就是你会从 grid[i][j] 走到 grid[i][j 1]2 &#xf…

Spring Boot工程结构推荐

今天看了一位简书上朋友发来的工程&#xff0c;于是想到应该要写这么一篇。前人总结的最佳实践案例可以帮助我们免去很多不必要的麻烦。花点时间来看一下本文&#xff0c;绝对物超所值。 工程结构&#xff08;最佳实践&#xff09; Spring Boot框架本身并没有对工程结构有特别…

GPT-3写了一篇论文

文 | Pine 发自 凹非寺源 | 量子位咦&#xff1f;这篇论文有点不对劲&#xff0c;第一作者看起来不像是人类的名字&#xff1a;一作的署名GPT-3&#xff0c;所属单位OpenAI。是的&#xff01;你没看错&#xff0c;GPT-3写了一篇关于自己的论文。此前&#xff0c;GPT-3已经撰写过…

程序员面试金典 - 面试题 02.03. 删除中间节点

1. 题目 实现一种算法&#xff0c;删除单向链表中间的某个节点&#xff08;除了第一个和最后一个节点&#xff0c;不一定是中间节点&#xff09;&#xff0c;假定你只能访问该节点。 示例&#xff1a; 输入&#xff1a;单向链表a->b->c->d->e->f中的节点c 结果…

Spring Boot开发Web应用

Spring Boot快速入门中我们完成了一个简单的RESTful Service&#xff0c;体验了快速开发的特性。在留言中也有朋友提到如何把处理结果渲染到页面上。那么本篇就在上篇基础上介绍一下如何进行Web应用的开发。 静态资源访问 在我们开发Web应用的时候&#xff0c;需要引用大量的j…

双塔模型的最强出装,谷歌又开始玩起“老古董”了?

文 | 兔子酱双塔模型已经证明在搜索和问答任务中是非常有效的建模方法&#xff0c;理论和业务落地已相当成熟。双塔根据参数共享程度不同&#xff0c;通常会归纳成两类&#xff1a;Simese dual encoder和Asymmetric dual encoder&#xff0c;前者参数结构完全对称&#xff0c;后…

LintCode解题目录

看见 LintCode 的代码能力测试CAT&#xff08;Coding Ability Test&#xff09;挺好&#xff0c;有倒计时&#xff0c;挺有面试紧迫感。做个记录。 另有本人 LeetCode解题目录、《程序员面试金典》解题目录、《剑指Offer》解题目录 我的 LintCode 主页 75 / 1505 算法问题 …

BERTopic:NLP主题模型的未来!

文| ZenMoore编| 小轶以前我一直以为&#xff0c;主题建模(提取文档的主题词)这种机器学习时代就开始研究的基础工具&#xff0c;现在肯定已经到头了&#xff0c;虽然...有时效果可能不是那么让人满意。但突然看到一则推文&#xff1a;“彻底疯了&#xff01;不需要预先清洗数据…

K 近邻法(K-Nearest Neighbor, K-NN)

文章目录1. k近邻算法2. k近邻模型2.1 模型2.2 距离度量2.2.1 距离计算代码 Python2.3 kkk 值的选择2.4 分类决策规则3. 实现方法, kd树3.1 构造 kdkdkd 树Python 代码3.2 搜索 kdkdkd 树Python 代码4. 鸢尾花KNN分类4.1 KNN实现4.2 sklearn KNN5. 文章完整代码k近邻法&#xf…

通用人工智能可行吗?组合泛化视角漫谈

"乌鸦为什么像写字台&#xff1f;"因为它们都能produce a few notes &#xff08;鸟叫/笔记&#xff09;&#xff0c;因为乌鸦和写字台都是思想与记忆的象征&#xff08;北欧神话&#xff09;&#xff0c;又或者因为&#xff0c;这本身就是一句没有道理的话&#xff…

Transformer 在美团搜索排序中的实践

引言 美团搜索是美团 App 连接用户与商家的一种重要方式&#xff0c;而排序策略则是搜索链路的关键环节&#xff0c;对搜索展示效果起着至关重要的效果。目前&#xff0c;美团的搜索排序流程为多层排序&#xff0c;分别是粗排、精排、异构排序等&#xff0c;多层排序的流程主要…

ACL‘22杰出论文:Prompt范式有bug!

‍文 | pythonGPT-3等超大模型的兴起&#xff0c;也带来了 in-context learning &#xff08;语境学习&#xff09;的新范式。在语境学习中&#xff0c;模型并不使用梯度下降&#xff0c;根据监督样本调整参数&#xff1b;而是将监督样本的输入输出接起来作为prompt&#xff08…

程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)

1. 题目 编写一个函数&#xff0c;检查输入的链表是否是回文的。 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 进阶&#xff1a; 你能否用 O(n) 时间复杂度和 O(1)…

美团外卖持续交付的前世今生

0. 前言 美团外卖自2013年创建以来&#xff0c;业务一直在高速发展&#xff0c;目前日订单量已突破3000万单&#xff0c;已成为美团点评最重要的业务之一。美团外卖所承载的业务&#xff0c;从早期单一的美食业务发展成为了外卖平台业务。目前除餐饮业务外&#xff0c;闪购、跑…

百万悬赏!寻找“模型越大,效果越差”的奇葩任务!

文 | 天于刀刀犹记 2018 年底谷歌开源 BERT 后&#xff0c;一大批基于 Attention 机制 Transformer 结构的大模型横空出世。XLNet、MPNet、ERNIE&#xff0c;NLP 任务彻底迈入大规模语料训练 fintune 的时代。之前一段时间爆火的 prompt 概念也离不开大模型中最基本的预训练 M…

程序员面试金典 - 面试题 02.08. 环路检测(快慢指针)

1. 题目 给定一个有环链表&#xff0c;实现一个算法返回环路的开头节点。 有环链表的定义&#xff1a;在链表中某个节点的next元素指向在它前面出现过的节点&#xff0c;则表明该链表存在环路。 示例 1&#xff1a; 输入&#xff1a;head [3,2,0,-4], pos 1 输出&#xff1…