待字闺中:日志查询。(网络摘要)
2019獨角獸企業重金招聘Python工程師標準>>>
給定一批查詢日志,數量是n,有的查詢條件出現了 n/m 次。找出這些次數
1: 采用hashmap 經行計數,,O(N) 的空間,O(n) 的時間
2: 進行排序,O(nlogn)
3: 快速排序,也可以做到O(n)
4:我們申請一個大小為M的map,開始變量查詢日志,如果:
? ? ? 遇到一個不在map中的查詢,則插入map,并且將值設置為1,遇到一個在map中的查詢,則將map該查詢對應的值加1
? ? ? 當map的查詢個數等于m時,則對map中所有查詢的值減一,
例子:
????????查詢日志:4 3 3 2 1 2 3 4 4 7 且m是5
當 4 3 3 落入map中的時候,map的形狀如: ??
? ? ? ? ? ? ? ? ? ? ? ? ?3
? ? ? 4 ? ? ? ? ? ? ? ? 3
?? ? ? ? ?
當 2 1 2 3 落入map中的時候,map形狀如:
????? ? ? ? ? ? ? ? ? ? ? 3
????????????????????????? 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2
? ? ? ?4 ? ? ? ? ? ? ? ? 3 ? ? ? ? ? ? ? ? ? ?1 ? ? ? ? ? ? ? ? 2 ?
當 4 4 落入map的時候
? ? ? ? ? ? ? ? ? ? ? ? 3
? ? ? ?4 ? ? ? ? ? ? ? 3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2
? ? ? ?4 ? ? ? ? ? ? ? 3 ? ? ? ? ? ? ? ? ? ?1 ? ? ? ? ? ? ? ? 2 ? ? ? ? ? ? 7
此事map的大小=5,可以消除一行
? ? ? ? ? ? ? 3
4 ? ? ? ? ? ? 3 ? ? ? ? ?2
此時剩下三個查詢
基于數的,整個時間復雜度是o(n logm)
轉載于:https://my.oschina.net/u/1388024/blog/204326
總結
以上是生活随笔為你收集整理的待字闺中:日志查询。(网络摘要)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android小数和整数相互转换
- 下一篇: Tornado 使用手册(一)-----