日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(蓝桥杯)2018JAVA B组 日志分析

發(fā)布時間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (蓝桥杯)2018JAVA B组 日志分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

日志統(tǒng)計

小明維護著一個程序員論壇。現(xiàn)在他收集了一份"點贊"日志,日志共有N行。其中每一行的格式是:

ts id

表示在ts時刻編號id的帖子收到一個"贊"。

現(xiàn)在小明想統(tǒng)計有哪些帖子曾經是"熱帖"。如果一個帖子曾在任意一個長度為D的時間段內收到不少于K個贊,小明就認為這個帖子曾是"熱帖"。

具體來說,如果存在某個時刻T滿足該帖在[T, T+D)這段時間內(注意是左閉右開區(qū)間)收到不少于K個贊,該帖就曾是"熱帖"。

給定日志,請你幫助小明統(tǒng)計出所有曾是"熱帖"的帖子編號。

【輸入格式】 第一行包含三個整數(shù)N、D和K。 以下N行每行一條日志,包含兩個整數(shù)ts和id。

對于50%的數(shù)據(jù),1 <= K <= N <= 1000
對于100%的數(shù)據(jù),1 <= K <= N <= 100000
0 <= ts<= 100000 0 <= id <= 100000

【輸出格式】 按從小到大的順序輸出熱帖id。每個id一行。

【輸入樣例】

7 10 2
0 1
0 10
10 10
10 1
9 1
100 3
100 3

【輸出樣例】 1 3

資源約定: 峰值內存消耗(含虛擬機) < 256M CPU消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。 不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。
思路:利用map將每個id的獲贊時間分類,通過循環(huán)獲贊時間查看此id是否為熱帖

1 package a; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.HashMap; 6 import java.util.Iterator; 7 import java.util.List; 8 import java.util.Map; 9 import java.util.Scanner; 10 11 public class test { 12 public static void main(String[] args) { 13 Scanner in = new Scanner(System.in); 14 int n = in.nextInt(); 15 int d = in.nextInt(); 16 int k = in.nextInt(); 17 // 通過id對獲贊時間分類 18 Map<Integer, String> map = new HashMap<Integer, String>(); 19 for(int i=0; i<n; i++) { 20 int ts = in.nextInt(); 21 int id = in.nextInt(); 22 map.put(id, map.getOrDefault(id, "")+","+ts); 23 } 24 // 熱帖id 25 List<Integer> host = new ArrayList<Integer>(); 26 // 對每個id進行處理 27 Iterator<Integer> iter = map.keySet().iterator(); 28 while(iter.hasNext()) { 29 int id = iter.next(); 30 // 將時間序列轉化為整數(shù)類型 31 String[] s = map.get(id).split(","); 32 int[] new_s = new int[s.length-1]; 33 for(int i=0; i<s.length-1; i++) { 34 new_s[i] = Integer.parseInt(s[i+1]); 35 } 36 // 由于得到的獲贊時間無序,首先進行排序 37 Arrays.sort(new_s); 38 // 進行判斷,i和j控制熱帖的獲贊數(shù) 39 for(int i=k-1, j=0; i<new_s.length; i++,j++) { 40 if(new_s[i]-new_s[j]<d && !host.contains(id)) { 41 host.add(id); 42 System.out.println(id); 43 } 44 } 45 46 } 47 in.close(); 48 } 49 }

?

轉載于:https://www.cnblogs.com/tianyahai/p/10485149.html

總結

以上是生活随笔為你收集整理的(蓝桥杯)2018JAVA B组 日志分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。