题目要求
P2550题目链接
分析
其实既然是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确实快,真的快~~