首页 > 试题广场 >

人数统计

[编程题]人数统计
  • 热度指数:2769 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小易的公司一共有名员工, 第个人每个月的薪酬是x_i万元。
现在小易的老板向小易提了次询问, 每次询问老板都会给出一个整数, 小易要快速回答老板工资等于的员工的数量。

输入描述:
第一行,两个空格间隔的整数,表示人数和提问的次数 
第二行,个用空格间隔的整数x_i,表示每名员工的薪酬
接下来有行,每行一个整数,表示老板的一次提问。



输出描述:
行,每行一个整数,表示对应提问的答案
示例1

输入

7 4
6 2 1 2 6 2 5
6
5
8
2

输出

2
1
0
3
/**
hashmap记录当前输入的数字和数量,判断是否存在。
如已存在,则直接数量加1,否则放入数字,数量设为1.
最后根据map.get(key)判断是否存在该数字,存在则返回value,否则返回0.
*/

import java.util.HashMap;
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        int n,m;
        int input;
        Scanner sc = new Scanner(System.in);
        n=sc.nextInt();
        m=sc.nextInt();
        int a;
        HashMap<Integer,Integer> hm = new HashMap();
        for(int i=0;i<n;i++){
            a=sc.nextInt();
            if(hm.containsKey(a)){
                hm.put(a,hm.get(a)+1);
            }else{
                hm.put(a,1);
            }
        }
        while(m--!=0){
            input=sc.nextInt();
            if(hm.get(input)!=null){
                System.out.println(hm.get(input));
            }else{
                System.out.println(0);
            }
        }
        
    }
}


编辑于 2020-08-07 15:24:59 回复(0)