HDOJ(HDU) 2192 MagicBuilding(用Java的Map做了下)

简介: HDOJ(HDU) 2192 MagicBuilding(用Java的Map做了下)

Problem Description

As the increase of population, the living space for people is becoming smaller and smaller. In MagicStar the problem is much worse. Dr. Mathematica is trying to save land by clustering buildings and then we call the set of buildings MagicBuilding. Now we can treat the buildings as a square of size d, and the height doesn’t matter. Buildings of d1,d2,d3….dn can be clustered into one MagicBuilding if they satisfy di != dj(i != j).

Given a series of buildings size , you need to calculate the minimal numbers of MagicBuildings that can be made. Note that one building can also be considered as a MagicBuilding.

Suppose there are five buildings : 1, 2, 2, 3, 3. We make three MagicBuildings (1,3), (2,3), (2) .And we can also make two MagicBuilding :(1,2,3), (2,3). There is at least two MagicBuildings obviously.


Input

The first line of the input is a single number t, indicating the number of test cases.

Each test case starts by n (1≤n≤10^4) in a line indicating the number of buildings. Next n positive numbers (less than 2^31) will be the size of the buildings.


Output

For each test case , output a number perline, meaning the minimal number of the MagicBuilding that can be made.


Sample Input

2

1

2

5

1 2 2 3 3


Sample Output

1

2


其实说了这么多,就是找出现次数最多的那个数。


练习了下Map的使用。也可以不用Map的。

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Main{
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int t =sc.nextInt();
        while(t-->0){
            Map<Integer,Integer> map = new TreeMap<Integer, Integer>();
            int n=sc.nextInt();
            int m[] = new int[n];
            for(int i=0;i<n;i++){
                m[i] = sc.nextInt();
                if(map.get(m[i])==null){
                    map.put(m[i], 1);
                }else{
                    map.put(m[i], map.get(m[i])+1);
                }
            }
            int max=0;
            for(int i=0;i<n;i++){
                if(map.get(m[i])>max){
                    max=map.get(m[i]);
                }
            }
            System.out.println(max);
        }
    }
}
目录
相关文章
|
2天前
|
存储 安全 Java
Java的Map接口及其实现类的技术性文章
Java的Map接口及其实现类的技术性文章
6 0
|
3天前
|
存储 安全 Java
Java list set map等接口及其实现类
Java list set map等接口及其实现类
|
4天前
|
存储 Java Serverless
Java集合利器 Map & Set
Java集合利器 Map & Set
|
9天前
|
存储 自然语言处理 Java
数据结构-Java Map 和 Set-2
数据结构-Java Map 和 Set
6 0
|
9天前
|
Java
数据结构-Java Map 和 Set-1
数据结构-Java Map 和 Set
19 0
|
10天前
|
存储 Java
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
【JAVA学习之路 | 进阶篇】Map接口及其实现类及常用方法
|
11天前
|
Java
|
18天前
|
存储 安全 Java
Java一分钟之-Map接口与HashMap详解
【5月更文挑战第10天】Java集合框架中的`Map`接口用于存储唯一键值对,而`HashMap`是其快速实现,基于哈希表支持高效查找、添加和删除。本文介绍了`Map`的核心方法,如`put`、`get`和`remove`,以及`HashMap`的特性:快速访问、无序和非线程安全。讨论了键的唯一性、`equals()`和`hashCode()`的正确实现以及线程安全问题。通过示例展示了基本操作和自定义键的使用,强调理解这些概念对编写健壮代码的重要性。
16 0
|
18天前
|
存储 Java
【JAVA基础篇教学】第十篇:Java中Map详解说明
【JAVA基础篇教学】第十篇:Java中Map详解说明
|
18天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
11 0