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();
}
}