每日一题:找到冠军I

一场比赛中共有 n 支队伍,按从 0 到  n - 1 编号。

给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 <= i, j <= n - 1i != j 的所有 i, j :如果 grid[i][j] == 1,那么 i 队比 j ;否则,j 队比 i

在这场比赛中,如果不存在某支强于 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 == grid.length
  • n == grid[i].length
  • 2 <= n <= 100
  • grid[i][j] 的值为 01
  • 对于所有 i grid[i][i] 等于 0.
  • 对于满足 i != j 的所有 i, jgrid[i][j] != grid[j][i] 均成立
  • 生成的输入满足:如果 a 队比 b 队强,b 队比 c 队强,那么 a 队比 c 队强

最容易想到的方法就是遍历grid数组,按照题目的逻辑,冠军队伍那一行仅有i = j时,数字为0,其余均为1。

这种方式的时间复杂度为O(n^2)。

如何优化遍历次数?

考虑每行中,如果遇到0,且i != j,那就说明 j 比 i 强,此时就可以跳出 i 行的循环了。这样可以减少遍历次数,但仍不是最少的。

使用擂台法,并以 j 作为champion

这样在每行中只需要查找一个元素,即grid[ i ][champion],如果这个值为1,说明 i 比champion强,更新champion,如果为0,就查找下一行。直到所有行遍历完成,champion中保留的就是冠军。

时间复杂度O(n)。

代码:

class Solution {
public:int findChampion(vector<vector<int>>& grid) {int n = grid.size();int champion = 0;for(int i = 0;i < n;i++){if(grid[i][champion] == 1){champion = i;}}return champion;}
};

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

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

相关文章

图像版PDF文件OCR识别转换为文本的3款免费工具软件

图像版PDF文件里面都是图片&#xff0c;要先通过OCR技术识别出文本&#xff0c;然后才能进行进一步处理编辑。下面是3个免费的PDF文件OCR识别软件工具&#xff1a; ●简可信PDF批量识别工具 简可信PDF批量识别工具是一款专门用于将PDF文件进行批量OCR&#xff08;光学字符识别…

针对“AI+医疗”的可行方案

针对“AI+医疗”的可行方案如下: 一、方案目标 利用AI技术,结合医疗数据,开发一套高效、准确的医疗辅助系统,旨在提高医疗诊断的精度、加速药物研发进程、优化疾病预测模型,从而辅助医生进行疾病诊断和治疗方案制定。 二、方案内容 医疗数据整合与预处理 收集各类医疗数…

ObjectiveC-第一部分-基础入门-学习导航

专题地址:MacOS一站式程序开发系列专题 第一部分:基础入门学习导航 OSX-01-Mac OS应用开发概述:简单介绍下MacOS生态、Xcode使用以及使用Xcode创建app的方法OSX-02-Mac OS应用开发系列课程大纲和章节内容设计:介绍下此系列专题的文章内容组织形式以及此系列专题的覆盖内容…

【QT教程】QT6 Web应用实战

QT6 Web应用实战 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

二叉树,非递归的深度遍历

#include<iostream> using namespace std; #define MAXSIZE 500 typedef struct tree{char data;struct tree *lchild;struct tree *rchild;}tree,*Tree;//非递归算法的深度遍历 //不利用系统的递归栈&#xff0c;自己自定义栈&#xff0c;用来实现先序遍历 //先将右孩子…

虚假贸易防控:国资委74号文解读,技术人员如何建防?

官.网地址&#xff1a;合合TextIn - 合合信息旗下OCR云服务产品 2023年12月&#xff0c;国资委发布《关于规范中央企业贸易管理严禁各类虚假贸易的通知》&#xff08;国资发财评规[2023]74号&#xff09;&#xff0c;提出“十不准”&#xff0c;严禁央企开展各类虚假贸易业务…

斐波那契数列经典应用之兔子繁殖问题

问题描述 此处有一题&#xff1a;有一对小兔子&#xff0c;从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律&#xff0c;假设没有兔子死亡&#xff0c;第一个月有一对刚出生的小兔子&#xff0c;问第n个月有多少对兔子&#xff1f; 分析…

Vue 引入config.js后别的js访问不到window对象下的属性

Vue项目里,我们项目配置的请求服务器地址都是在public里config.js里,如下例: 然后在index.html里引入config.js,如下图: 这里要注意的是,script的src要写上<%= BASE_URL %>,代码如下: <!DOCTYPE html> <html><head><meta charset="…

LeetCode 每日一题 ---- 【2923. 找到冠军 I】

LeetCode 每日一题 ---- 【2923. 找到冠军 I】 2923.找到冠军I方法一&#xff1a;暴力求解 2923.找到冠军I 方法一&#xff1a;暴力求解 从头遍历一遍二维数组&#xff0c;如果发现 gird[x][y] 1&#xff0c;说明 x 队赢过 y 队&#xff0c;下面我们就只需要子再判断一下是否…

NCBI 数据下载

网上介绍的那几种直接下载NCBI数据的方法大都下载速度很慢&#xff0c;但是EBI (European Bioinformatics Institute) 下载很快&#xff0c;而且它的数据库和NCBI是共享的&#xff0c;所以我们可以直接从 EBI 下载。 1 、 确定要下载的 SRA 编号&#xff1b; 2 、 EBI (https…

单片机的按键消抖/开关量监测函数(附源码,可移植)

方案一&#xff1a;纯软件延时 sbit KEY P1^3; ///按键读取函数 uint8_t GetKey(void) {if(KEY 1){DelayMs(20); //延时消抖if(KEY 1){return 1;}else {return 0;}}else {return 0;} }致命缺点&#xff1a;在延时的时候一直占用cpu的资源&#xff0c;如果在延时的时…

探索点云与KD-Tree配对的方法

比较点云是处理和分析点云数据的关键步骤。然而,由于各个扫描之间固有的差异,无法进行逐点比较。因此,点云分析的第一步也是主要步骤是将点配对以进行有意义的比较。 配对点是区分表面变形和运动分析的关键任务。这个过程不仅为变形分析提供了见解,还使我们能够通过比较不…

华为海思数字芯片设计笔试第五套

声明 下面的题目作答都是自己认为正确的答案&#xff0c;并非官方答案&#xff0c;如果有不同的意见&#xff0c;可以评论区交流。 这些题目也是笔者从各个地方收集的&#xff0c;感觉有些题目答案并不正确&#xff0c;所以在个别题目会给出自己的见解&#xff0c;欢迎大家讨论…

鼠标灵敏度怎么调,鼠标灵敏度怎么调最稳

鼠标和键盘是操作计算机过程中使用最频繁的设备之一&#xff0c;用电脑的时&#xff0c;我敢说你一定离不开鼠标。有些用户发现鼠标不太好用&#xff0c;尤其是在游戏时&#xff0c;总觉得鼠标移动太慢了。另外&#xff0c;如果你感觉鼠标按键失灵、鼠标单击变双击以及反应迟钝…

武汉军工保密认证保密资格认证有什么意义?

其一&#xff0c;适应新体制的需要。由于国防科技工业管理体制的变化&#xff0c;保密管理实际上已置身于更加开放的国际国内大环境中&#xff0c;保密管理体制必须做出相应的改革&#xff0c;建立起与市场经济相适应的新的保密机制。而在军工行业实行认证制度&#xff0c;则是…

pandas习题 029:用 Series 构造 DataFrame

参考答案 用 Series 构造一个 DataFrame&#xff0c;它有 a、b 两列&#xff0c;三行数据。其中 a 列值为 1、4、7&#xff0c;b 列值为 2、5、8&#xff0c;索引为 x、y、z。即&#xff1a;a b x 1 2 y 4 5 z 7 8 参考答案Python 代码如下&#xff1a;import pandas a…

装机指导。

everything winrar snipaste cmake git tortoisegit tortoisesvn inno setup vs2022 安装的时候注意sdk路径一定要默认&#xff01;&#xff01; 否则你会发现在你的sdk安装路径的根盘符下会多出一个Windows Kits&#xff0c;强迫症接受不了 默认的会跟已有的装在一起…

C语言面试指针辨析

1. const int *p int const *p p可以改变&#xff0c;*p不可以改变 p可以指向任意空间&#xff0c;但无法利用p修改指针空间的值 2. int *const p p不能改变&#xff0c;*p可以改变 3. const int *const p int const *const p p和*p都不能改变 4. 面试问题 将内存地址为0x2…

69787987

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…