【Leetcode】2923. 找到冠军 I

文章目录

  • 题目
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度
  • 结果
  • 总结

题目

题目链接🔗
一场比赛中共有 n n n 支队伍,按从 0 0 0 n − 1 n - 1 n1 编号。

给你一个下标从 0 0 0 开始、大小为 n ∗ n n * n nn 的二维布尔矩阵 g r i d grid grid 。对于满足 0 ≤ i , j ≤ n − 1 0 \leq i, j \leq n - 1 0i,jn1 i ≠ j i \neq j i=j 的所有 i , j i, j i,j :如果 g r i d [ i ] [ j ] = = 1 grid[i][j] == 1 grid[i][j]==1,那么 i i i 队比 j j j ;否则, j j j 队比 i i i

在这场比赛中,如果不存在某支强于 a a a 队的队伍,则认为 a a a 队将会是 冠军

返回这场比赛中将会成为冠军的队伍。

示例 1
输入:grid = [[0,1],[0,0]]
输出:0
解释:比赛中有两支队伍。
grid[0][1] == 1 表示 0 队比 1 队强。所以 0 队是冠军。

示例 2
输入:grid = [[0,0,1],[1,0,1],[0,0,0]]
输出:1
解释:比赛中有三支队伍。
grid[1][0] == 1 表示 1 队比 0 队强。
grid[1][2] == 1 表示 1 队比 2 队强。
所以 1 队是冠军。

提示

  • n = = g r i d . l e n g t h n == grid.length n==grid.length
  • n = = g r i d [ i ] . l e n g t h n == grid[i].length n==grid[i].length
  • 2 ≤ n ≤ 100 2 \leq n \leq 100 2n100
  • g r i d [ i ] [ j ] grid[i][j] grid[i][j] 的值为 0 0 0 1 1 1
  • 对于所有 i i i g r i d [ i ] [ i ] grid[i][i] grid[i][i] 等于 0 0 0.
  • 对于满足 i ≠ j i \neq j i=j 的所有 i , j i, j i,j g r i d [ i ] [ j ] ≠ g r i d [ j ] [ i ] grid[i][j] \neq grid[j][i] grid[i][j]=grid[j][i]均成立
  • 生成的输入满足:如果 a a a 队比 b b b 队强, b b b 队比 c c c 队强,那么 a a a 队比 c c c 队强

思路

冠军应该比其他所有球队都强,根据这一个特性可以知道会有一个队伍和其他队伍的比较肯定是全部是 1 1 1,所以只需要遍历整个矩阵观察哪一行全部都是 1 1 1就可以了,当然这个队伍和自己比较的时候还是 0 0 0,这里特殊处理一下就好

代码

class Solution {
public:int findChampion(vector<vector<int>>& grid) {int len=grid.size();bool pd=1;for(int i=0;i<len;++i){pd=1;for(int j=0;j<len;++j){if(i==j)continue;if(grid[i][j]==0){pd=0;break;}}if(pd)return i;}return len;}
};

复杂度分析

时间复杂度

O ( n 2 ) O(n^2) O(n2)

空间复杂度

O(1)

结果

在这里插入图片描述

总结

遍历每支队伍,检查是否存在比它强的队伍来找到冠军队伍。

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

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

相关文章

【从零开始手搓12306项目】十九、增加网关模块

在train项目中增加一个maven模块gateway 在pom中增加网关依赖 gateway只有一个依赖&#xff0c;不能引入common&#xff0c;也不能引入starter-web gateway是基于netty的 在main下新建包com.jia.train.gateway.config 新建启动类GatewayApplication&#xff0c;添加并修改类…

window轻松使用k8s

Docker Desktop安装篇 1、win安装 1、下载安装包 https://www.docker.com/products/docker-desktop/ 官网下载安装包 2、配置win支持虚拟化 不勾选Hyper-V&#xff0c;它和Windows Subsystem for Linux (WSL) 是两套功能&#xff0c;这里不选他 3、安装WSL配置window支持lin…

Python可视化-matplotlib用法详解(一)

一、折线图绘制 import pandas as pds./../../data//unrate.csv unrate pd.read_csv(s) # 时间格式转换&#xff0c; unrate[DATE] pd.to_datetime(unrate[DATE]) print(unrate.head(12))DATE VALUE 0 1948-01-01 3.4 1 1948-02-01 3.8 2 1948-03-01 4.0 3 19…

企业数字化转型路径有哪些?

企业数字化转型是一个复杂而全面的过程&#xff0c;涉及到企业的多个方面&#xff0c;包括管理、运营、生产、销售等。企业数字化转型的路径可以概括为以下几个方面&#xff1a; 1、开展数字化评估 企业首先需要对自身的数字化基础水平、经营管理现状以及内外部转型资源进行全…

【C语言】每日一题,快速提升(2)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 题目&#xff1a;杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个…

性能测试 Jmeter 非 GUI 模式 -CLI 命令详解

我们在使用Jmeter做性能测试的时候&#xff0c;大部分同学用的是图形化界面进行脚本编写和执行性能测试的。但是其实真正在公司执行性能测试的时候&#xff0c;我们基本上不会用图形化界面去执行测试&#xff0c;这是因为工具渲染这些图形本身会让Jmeter结果存在很多不稳定的因…

什么样的开放式耳机好用?五大红榜超值机型力荐!

今年&#xff0c;市场上涌现出众多备受瞩目的开放式耳机产品&#xff0c;面对如此众多的选择&#xff0c;如何挑选出一款性能卓越、音质出色的开放式耳机&#xff0c;无疑成为了消费者们关注的焦点。传统的入耳式耳机虽然有其优势&#xff0c;但长时间佩戴往往会导致耳朵红肿胀…

STM32的GPIO端口的八种模式解析

目录 STM32的GPIO端口的八种模式解析 一、上拉输入模式 二、下拉输入模式 三、浮空输入模式 四、模拟输入模式 五、推挽输出模式 六、开漏输出模式 七、复用推挽输出模式 八、复用开漏输出模式 STM32的GPIO端口的八种模式解析 在学习STM32的过程中&#xff0c;GPIO端口…

LeetCode——965. 单值二叉树

题目- 力扣&#xff08;LeetCode&#xff09; 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;[1,1,1,1,1,null,1] 输出&a…

YOLO-World: Real-Time Open-Vocabulary Object Detection 简介+安装+运行+训练(持续更新)

前言 YOLO_WORLD太牛了&#xff01;&#xff01;众所周知&#xff0c;传统是视觉目标检测一旦训练好后&#xff0c;如果我们需要增加新的识别目标的话&#xff0c;必须得重新训练模型。在生产中如果经常要新增检测目标&#xff0c;对时效性影响很大&#xff0c;而且随着数据量…

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点&#xff0c;方便尾插List…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子&#xff0c; pip install matplotlib6666 6666只是胡乱输入的一个数&#xff0c;反正输入任意一个不像版本号的数字都可以&#xff5e; matplotlib所有版本号如下&#xff0c; 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…