算法题练习系列之(三十一): 统计同成绩学生

xiaoxiao2021-02-28  93

--------------------------------------------------------------------------------------------------------------------------------------------------------

时间限制:1秒  空间限制:32768K  代码长度限制 100 KB

--------------------------------------------------------------------------------------------------------------------------------------------------------

题目描述

本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入描述:
输入在第1行给出不超过10的5次方的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以 空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。
输出描述:
在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。
输入例子:
10 60 75 90 55 75 99 82 90 75 50 3 75 90 88
输出例子:
3 2 0

-------------------------------------------------------------------------------------------------------------------------------------------------------

实现思路:

(1).将输入的成绩存储在数组中,用map存储查找的分数出现的次数,默认均设置为0次;

(2).循环成绩数组,判断是否存在于需要统计的分数中,如果是,将对应的map中的key值加1,知道循环结束统计即完毕;

(3).需注意的一点是,指定分数可以重复,所以输出时,按照指定分数数组从map中取值,不然输出会较少。

--------------------------------------------------------------------------------------------------------------------------------------------------------

package com.biyao.algorithm.niuke.a1; import java.util.LinkedHashMap; import java.util.Map; import java.util.Scanner; public class Main_a1_028 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int n = scan.nextInt(); int[] nums = new int[n]; for (int i = 0; i < n; i++) { nums[i] = scan.nextInt(); } int scoreNum = scan.nextInt(); int[] findScore = new int[scoreNum]; Map<Integer,Integer> timeMap = new LinkedHashMap<Integer,Integer>(); for (int i = 0; i < scoreNum; i++) { findScore[i] = scan.nextInt(); timeMap.put(findScore[i], 0); } for (int i = 0; i < nums.length; i++) { if(timeMap.containsKey(nums[i])){ int times = timeMap.get(nums[i]); timeMap.put(nums[i], times+1); } } for (int i = 0; i < findScore.length; i++) { System.out.print(timeMap.get(findScore[i])); if(i != (scoreNum-1)){ System.out.print(" "); } } } } }

转载请注明原文地址: https://www.6miu.com/read-54369.html

最新回复(0)