题目要求
分析
其实既然是Java来写,不用集合框架就是浪费啊!!
比较简单的思路是把中奖号码放进HashSet里,利用Hash来查找。
contains()就避免了又双叒叕疯狂遍历~~
用一个数组记录中奖情况即可~~
AC代码(Java语言描述)
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = Integer.parseInt(scanner.nextLine());
String[] correctArray = scanner.nextLine().split(" ");
Set<String> set = new HashSet<>();
for (String str : correctArray) {
set.add(str);
}
int[] resultArray = new int[7];
for (int i = 0; i < num; i++) {
int counter = 0;
for (int j = 0; j < 7; j++) {
if (set.contains(scanner.next())) {
counter++;
}
}
if (counter != 0) {
resultArray[7-counter]++;
}
}
for (int i = 0; i < 6; i++) {
System.out.print(resultArray[i] + " ");
}
System.out.println(resultArray[6]);
scanner.close();
}
}
About~~HashSet
还是老规矩,这里不详细分析,以后再说吧。
值得一提的是HashSet基于HashMap实现:
感兴趣的Reader自己多去看看源码趴~~
另外,Hash确实快,真的快~~