20240114-寻找零损失或一损失的玩家

题目要求

给定一个整数数组 matches,其中 matches[i] = [winneri, Loseri] 表示玩家 Winneri 在一场比赛中击败了玩家 Loseri。

返回大小为 2 的列表答案,其中:

  • answer[0] 是所有未输掉任何比赛的玩家的列表。
  • answer[1] 是仅输掉一场比赛的所有玩家的列表。

两个列表中的值应按升序返回。

您应该只考虑至少参加过一场比赛的球员。

生成的测试用例不会有任何两个匹配具有相同的结果。

Example 1:

Input: matches = [[1,3],[2,3],[3,6],[5,6],[5,7],[4,5],[4,8],[4,9],[10,4],[10,9]]
Output: [[1,2,10],[4,5,7,8]]
Explanation:
Players 1, 2, and 10 have not lost any matches.
Players 4, 5, 7, and 8 each have lost one match.
Players 3, 6, and 9 each have lost two matches.
Thus, answer[0] = [1,2,10] and answer[1] = [4,5,7,8].

Example 2:

Input: matches = [[2,3],[1,3],[5,4],[6,4]]
Output: [[1,2,5,6],[]]
Explanation:
Players 1, 2, 5, and 6 have not lost any matches.
Players 3 and 4 each have lost two matches.
Thus, answer[0] = [1,2,5,6] and answer[1] = [].

思路

先把参与比赛的队伍的list得到,然后用哈希表统计输的次数,如果哈希表中的队伍没有出现在全部list中则是全胜的。然后再统计只输一场的即可。

代码

class Solution {
public:vector<vector<int>> findWinners(vector<vector<int>>& matches) {vector<vector<int>> res(2);// 统计不重复的队伍,用到setset<int> teams;map<int, int> losses;for (auto& match : matches) {teams.insert(match[0]);teams.insert(match[1]);losses[match[1]]++;}for (int team : teams) {if (losses.find(team) == losses.end()) {res[0].push_back(team);} else if (losses[team] == 1) {res[1].push_back(team);}}sort(res[0].begin(), res[0].end());sort(res[1].begin(), res[1].end());return res;}
};

时间复杂度:

遍历每场比赛的主循环的时间复杂度为 O(N),其中 N 为比赛场次。
查找无失利或正好有一场失利的球队的循环复杂度为 O(T),其中 T 是唯一球队的数量。
对于 res 中的两个子向量,排序功能的复杂度均为 O(T log T)。
总的来说,时间复杂度约为 O(N + T log T)。


空间复杂度:

空间复杂度主要取决于存储团队和失利队伍映射所需的空间。
Map和Set共需要 O(T) 个空间,其中 T 是唯一球队的数量。
结果向量需要额外的空间,但不会超过 O(T)。
因此,总的空间复杂度为 O(T)。

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

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

相关文章

京东年度数据报告-2023全年度笔记本十大热门品牌销量(销额)榜单

2023年度&#xff0c;在电脑办公市场整体销售下滑的环境下&#xff0c;笔记本市场的整体销售也不景气。 根据鲸参谋平台的数据显示&#xff0c;京东平台上笔记本的年度销量为650万&#xff0c;同比下滑约16%&#xff1b;销售额约为330亿&#xff0c;同比下滑约19%。同时&#…

71.网游逆向分析与插件开发-角色数据的获取-修复角色名与等级显示问题

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;自动化助手UI显示角色数据-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;0049452c079867779…

微软Office 2021 批量许可版

软件介绍 微软办公软件套件Microsoft Office LTSC 2021 专业增强版2024年1月批量许可版更新推送&#xff01;Office2021正式版和Windows11系统同时于2021年10月份正式推出&#xff0c;Office LTSC 2021相比 Office2019正式版变化不太&#xff0c;最主要强化了LOGO设计趋势&…

Visual Studio Code 1.67调整文件嵌套、Markdown导航

2022年4月发布的微软代码编辑器也为Java和Visual Studio code for Web扩展包带来了改进。 Visual Studio Code 1.67发布于5月5日&#xff0c;可以从项目网站下载&#xff0c;适用于Linux、Windows或Mac。新特性中特别关注的是浏览器文件嵌套和Markdown代码导航。该版本还带来了…

你读过哪些令你有跪感的书?

推荐知友们去看看这本书《绝密人性天书》&#xff0c;绝对是本好书&#xff0c;教你如何洞察人性。 原文地址&#xff08;建议及时保存&#xff0c;估计过几天就会被河蟹了&#xff09;: https://pan.quark.cn/s/6d80d65761a1 备用链接&#xff1a;https://pan.xunlei.com/s/…

电商物流查询:未来的发展方向

在电商日益繁荣的时代&#xff0c;物流信息查询不仅关乎消费者体验&#xff0c;更影响着电商运营的效率。快速、准确地追踪物流信息至关重要。本文将简述物流信息快速追踪的价值&#xff0c;并重点介绍固乔快递查询助手这一高效查询工具及其批量查询功能。 一、物流信息快速追踪…

arcgis javascript api4.x加载天地图wgs84(wkid:4326)坐标系

需求&#xff1a; 使用arcgis javascript api4.x以basetilelayer方式加载天地图wgs84&#xff08;wkid&#xff1a;4326&#xff09;坐标系 效果&#xff1a; 代码&#xff1a; 提示&#xff1a;&#xff08;下述三个文件放同一个文件夹下&#xff09; 4326.js define([ex…

R语言【paleobioDB】——pbdb_occurrence():从PBDB获取单个化石记录号的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_occurrence (id, ...) Arguments 参数【…

Qt之QByteArray大小写字母转化

QByteArray类对象若为带大小写字母的字符串&#xff0c;可调用函数toUpper()和toLower()实现字母大小写 的转换。函数toUpper&#xff08;&#xff09;的原型声明如下: QByteArray toUpper(&#xff09;&#xff1b; 函数很简单,没有参数,直接返回转换成大写字母后的字节数组。…

【JAVA】MySQL中datetime类型23:59:59自动变为下一天的00:00:00

如&#xff1a;2024-08-11 23:59:59 变成了 2024-08-12 00:00:00。 解析&#xff1a;数据库入库的时候会有500毫秒的进位&#xff0c;然而程序在赋值时间给变量的时候很大概率会超过500ms&#xff0c;有时是999ms。 解决方案 // DateUtil Hutool官网 将生成的时间往前偏移99…

python毕设选题 - 基于时间序列的股票预测于分析

文章目录 1 简介2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 简介 Hi&#xff0c;大家好&#xff0c;今天向大家介绍一个大数据项目…

QTday6作业

思维导图: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase>//数据库管理类 #include <QSqlQuery>//执行sql语句类 #include <QSqlRecord>//数据库记录类 #include <QSqlError>//数据库错误类 #include …

使用ChatGPT对进行论文改写与润色

一、内容改写 关键在于明确改写的具体要求。 例如:[论文内容] 可以指明需要提升该段落的流畅性和逻辑连贯性。 常用指令 细微调整文本 轻微编辑 重写以增强表述清晰度 简化句式 校正语法和拼写错误 提升文本的流畅性和条理性 优化词汇使用 调整文本风格 进行深度编辑…

leetcode 17 电话号码字母组合

题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xf…

2024年烟花爆竹储存证考试题库及烟花爆竹储存试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年烟花爆竹储存证考试题库及烟花爆竹储存试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机…

实践学习PaddleScience飞桨科学工具包

实践学习PaddleScience飞桨科学工具包 动手实践&#xff0c;在实践中学习&#xff01;本项目可以在AIStudio平台一键运行&#xff01;地址&#xff1a;https://aistudio.baidu.com/projectdetail/4278591 本项目第一次执行会报错&#xff0c;再执行一次即可。若碰到莫名其妙的…

JavaScript-循环嵌套断点调试-笔记

1.do...while循环 do while语法结构&#xff1a; 循环初始值&#xff1b; do{ //代码&#xff1b; 增量&#xff1b; }while(循环条件)&#xff1b; <script> // 输出十句 &#xff1a; 你好世界 var …

数据可视化大屏自适应,保持比例不变形,满足不同分辨率的需求——利用transform的scale属性缩放,缩放整个页面。

文章目录 一、需求背景&#xff1a;二、需求分析&#xff1a;三、选择方案&#xff1a;四、实现代码&#xff1a;五、效果预览&#xff1a;六、封装组件&#xff1a; 一、需求背景&#xff1a; 数据可视化大屏是一种将数据、信息和可视化效果集中展示在一块或多块大屏幕上的技…

flink 1.18 sql demo

flink 1.18 sql demo 更换flink-table-planner 为 flink-table-planner-loader pom.xml <dependencies><!-- https://mvnrepository.com/artifact/org.apache.flink/flink-table-api-java-uber --><dependency><groupId>org.apache.flink</groupId…

2020年财政收支

偶感兴趣&#xff0c;花了点时间整理 有兴趣的可以参照下面的链接整理完整2022年的数据&#xff0c;2023年的数据还有12月份的数据未出&#xff0c;估计在这几天出。 附 2022年的财政收支情况 2022年基金支出预算表 2020年的社保收入是7.6万亿。 上图个税金额写错了&#xff0c…