数据结构和算法分析数据结构与算法

HDU-1004-(Let the Balloon Rise)

2021-11-12  本文已影响0人  itbird01

HDU-1004-(Let the Balloon Rise)

解题思路

1.使用linkedmap存储每次读到的元素,key为元素,value为出现的次数
2.将map转为list排序,以value降序

解题遇到的问题

1.next与nextLine的区别,会导致输入异常
2.map排序

后续需要总结学习的知识点

##解法1
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner mScanner = new Scanner(System.in);
        // N (0 < N <= 1000)
        int n = mScanner.nextInt();
        // 使用linkedmap存储每次读到的元素,key为元素,value为出现的次数
        LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
        while (n != 0) {
            map.clear();
            for (int i = 0; i < n; i++) {
                String input = mScanner.next();
                map.put(input, map.getOrDefault(input, 1) + 1);
            }
            
            //将map排序,以value降序
            List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(
                    map.entrySet());
            Collections.sort(list, new Comparator<Entry<String, Integer>>() {

                @Override
                public int compare(Entry<String, Integer> o1,
                        Entry<String, Integer> o2) {
                    return o2.getValue().compareTo(o1.getValue());
                }
            });
            System.out.println(list.get(0).getKey());
            n = mScanner.nextInt();
        }
        mScanner.close();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读