热点网站统计
标题:热点网站统计 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String content = "";
HashMap<String,Integer> map = new HashMap<>();
StringBuffer sb = new StringBuffer();
while(scanner.hasNext()){
content = scanner.nextLine();
try {
int num = Integer.parseInt(content);
List<String> list = new ArrayList<>();
map.forEach((k,v)->{
list.add(v+" "+k);
});
list.sort((o1,o2)->{
int value1 = Integer.parseInt(o1.split(" ")[0]);
int value2 = Integer.parseInt(o2.split(" ")[0]);
if(value1 == value2){
String key1 = o1.split(" ")[1];
String key2 = o2.split(" ")[1];
return key1.compareTo(key2);
}else{
// System.out.println(value1 + " "+value2);
return value2 - value1;
}
});
for(int i=0;i<num;i++){
sb.append(list.get(i).split(" ")[1]).append(",");
}
sb.delete(sb.length()-1,sb.length()).append("\n");
}catch (Exception e){
if(map.containsKey(content)){
int value = map.get(content);
map.put(content,value+1);
}else{
map.put(content,1);
}
}
}
System.out.println(sb);
}
}


哔哩哔哩公司福利 903人发布