题目比较简单,只需要解决两个问题
1、存储编号及其出现的次数
2、找出出现次数最多的编号并且如果并列取编号大的
输入用io流可以节省时间
问题一可以选择map或者数组,但是map会导致最后一个用例超时,用数组也比较极限
问题二只需要遍历数组即可
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine().trim());
int nums[]=new int[1001];
for (int i=0;i<n;i++){
// 读取当前博文的标签行(包含多个数字,用空格分隔)
String line = br.readLine().trim();
// 按空格分割成多个数字字符串
String[] numbers = line.split("\\s+");
for (int j=1;j<numbers.length;j++){
int f = Integer.parseInt(numbers[j]);
nums[f]++;
}
}
int max=0;
int maxkey=0;
for (int i=0;i<nums.length;i++){
if (nums[i]>=max){//用大于等于来确保最大值相同时取编号大的
max=nums[i];
maxkey=i;
}
}
System.out.println(maxkey+" "+max);
}
}
1064

被折叠的 条评论
为什么被折叠?



