链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
牛村新开了一个系列赛,一个系列赛有m场比赛,比赛规则是解题数越多排名越前,如果前几名队伍解题数一样则会并列第一。
有n个神仙队伍完整参加了m场比赛,请问有几个队伍拿过第一名。
输入描述:
第一行输入两个整数n,m,表示队伍数量与m场比赛。 接下来n行输入一个数字矩阵,每行m个数字字符表示每场比赛的解题数量 1<=n,m<=100
输出描述:
输出一个整数表示拿过第一名的队伍数量
示例1
输入
3 5 91728 11828 11111
输出
3
代码:
import java.util.Scanner; public class T4 { public static void main(String[] args) { // 创建一个Scanner对象用于读取输入 Scanner sc = new Scanner(System.in); // 读取矩阵的行数n和列数m int n = sc.nextInt(); int m = sc.nextInt(); // 初始化一个n行m列的二维数组arr来存储字符的ASCII值 int [][] arr = new int[n][m]; // 初始化一个长度为m的一维数组max来存储每列的最大ASCII值 int [] max = new int [m]; // 初始化计数器total,用于统计满足条件的行数 int total = 0; // 遍历每一行 for (int i = 0; i < n; i++) { // 读取当前行的字符串 String str = sc.next(); // 遍历当前行的每个字符 for (int j = 0; j < m; j++) { // 将字符转换为其对应的ASCII值并存储到arr中 arr[i][j] = (int)str.charAt(j); // 更新当前列的最大ASCII值 if (arr[i][j] > max[j]) { max[j] = arr[i][j]; } } } // 再次遍历每一行,检查是否有任意一个元素大于等于该列的最大值 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { // 如果当前元素大于等于该列的最大值,则计数器加1,并跳出当前行的循环 if (arr[i][j] >= max[j]) { total++; break; } } } // 输出满足条件的行数 System.out.println(total); } }