上一篇博客:为什么忘记密码要重置密码而不是直接告诉你密码?
题目信息
题目描述
一场比赛中共有 n
支队伍,按从 0
到 n - 1
编号。
给你一个下标从 0
开始、大小为 n * n
的二维布尔矩阵 grid
。对于满足 0 <= i, j <= n - 1
且 i != j
的所有 i, j
:如果 grid[i][j] == 1
,那么 i
队比 j
队 强 ;否则,j
队比 i
队 强 。
在这场比赛中,如果不存在某支强于 a
队的队伍,则认为 a
队将会是 冠军 。
返回这场比赛中将会成为冠军的队伍。
示例 1
示例 2
提示
n == grid.length
n == grid[i].length
2 <= n <= 100
grid[i][j]
的值为0
或1
- 对于所有
i
,grid[i][i]
等于0
. - 对于满足
i != j
的所有i, j
,grid[i][j] != grid[j][i]
均成立 - 生成的输入满足:如果
a
队比b
队强,b
队比c
队强,那么a
队比c
队强
题解
解题思路
今天的每日一题挺简单,直接遍历一下二维数组即可。我的解法是把所有的1
都加到 第一列 中,最后依次比较第一列数值的大小找出最大的一个队即可。
解题代码
class Solution {
public int findChampion(int[][] grid) {
int champion = 0, score = 0;
for (int i = 0; i < grid.length; i++) {
for (int j = 1; j < grid[i].length; j++) {
grid[i][0] += grid[i][j];
}
}
for (int i = 0; i < grid.length; i++) {
if (grid[i][0] > score) {
score = grid[i][0];
champion = i;
}
}
return champion;
}
}