当前位置: 首页 > news >正文

leetcode2924--找到冠军II

1. 题意

给定一个有向无环图,方向表示胜负关系;求最后胜出的人。

2. 题解

将所有人标记为胜者,统计出度去掉对应胜者标记;

最后统计胜者数目,是否大于1,若大于1,则没有胜者,否则返回那个胜者。

2.1 我的代码
class Solution {
public:void dfs(int r, const vector<vector<int>> &g, vector<int> &ch, vector<int> &vis) {int n = ch.size();for (int i = 0;i < n; ++i) {if (!vis[i] && g[r][i]) {vis[i] = 1;ch[i] = 0;dfs(i, g, ch, vis);}}}int findChampion(int n, vector<vector<int>>& edges) {vector<vector<int>> g(n ,vector<int>(n, 0));vector<int> vis(n, 0);vector<int> ch(n, 1);for(auto &edge:edges) {g[edge[0]][edge[1]] = 1;ch[edge[1]] = 0;}for (int i = 0; i < n; ++i) {if ( !vis[i] ) {vis[i] = 1;dfs(i, g, ch, vis);}}int ch_num = count(ch.begin(), ch.end(), 1);if ( ch_num != 1)return -1;return find(ch.begin(), ch.end(), 1) - ch.begin();}
};
2.2 更清晰的代码
  int findChampion(int n, vector<vector<int>>& edges) {vector<int> inDeg(n, 0);for (auto &edge: edges) {inDeg[edge[1]]++;}int champion = -1;for (int i = 0;i < n; ++i) {if (inDeg[i] == 0) {if (champion == -1)champion = i;elsereturn -1;}}return champion;}
http://www.lryc.cn/news/339383.html

相关文章:

  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记13:RTC实时时钟
  • 统一用安卓Studio修改项目包名
  • Spring Cloud Gateway详细介绍以及实现动态路由
  • transformer上手(6)—— 微调预训练模型
  • web前端框架设计第四课-条件判断与列表渲染
  • 计算机网络:数据链路层 - CSMA/CD协议
  • 力扣LeetCode138. 复制带随机指针的链表 两种解法(C语言实现)
  • 强大的压缩和解压缩工具 Keka for Mac
  • 论文速读:Do Generated Data Always Help Contrastive Learning?
  • 华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)
  • git commit --amend用法
  • 分布式系统:缓存与数据库一致性问题
  • JavaEE企业开发新技术5
  • mysql dump导出导入数据
  • 刷题记录3
  • Decorator 装饰
  • SpringMVC:搭建第一个web项目并配置视图解析器
  • 一文了解HTTPS的加密原理
  • Ubuntu系统空间整理
  • PHP Storm 2024.1使用
  • 王东岳-知鱼之乐【边读边记】1
  • 迁移docker部署的GitLab
  • 今年消费新潮流:零元购商业模式
  • Go导入私有仓库
  • GIS GeoJSON数据获取
  • 书生·浦语大模型实战营 | 第3次学习笔记
  • easyExcel - 按模板导出
  • 使用 Tranformer 进行概率时间序列预测实战
  • LLM大语言模型助力DataEase小助手,新增气泡地图,DataEase开源数据可视化分析平台v2.5.0发布
  • 维修伊顿触摸屏不显示工业电脑人机界面EATON XVS-430-10MPI-1-10 深圳捷达工控维修