深度解析某頭條的一道面試題

2021-08-20 20:12:50 字數 1152 閱讀 3471

如果是你來開發這個功能,你怎麼做?

回答的不錯,你可以走了!

select

id, score from

user

order

by score desc

limit

100

candidates = 

for k in range(1024):

# 每個表都取topn

rows = select id, score from user_$ order by score desc limit 100

# 聚合結果

candidates.extend(rows)

# 根據score倒排

candidates = sorted(candidates, key=lambda t: t[1], reverse=true)

# 再取topn

candidates[:100]

時間堆來確認哪些記錄過期了。量大的時候這些都是不容小噓的負擔。

class

hitslot 

}class

windowslots  elif(ts - this.currentslot.timestamp > 60 * 1000)

this.currentslot.onhit(postid, hits);

}void

onbeat() 

hitslot slot = historyslots[0];

long ts = system.currenttimemillis();

if(ts - slot.timestamp > 8 * 60 * 60 * 1000)

}}

它的目標就是定時維持乙個 8 小時的統計視窗,並匯聚 topn 的熱帖放在記憶體裡。

這個 topn 的資料並不是特別實時,有乙個大約 1 分鐘的短暫的時間視窗。

class

hotpostsaggregator 

void

onlocalreport

(int nodeid, map[int]int topnposts)

}

一道面試題的解析

一道面試題的解析 題目 1.畫三角形,四邊形,圓形,在視窗中移動,碰到視窗邊緣會自動彈回 2.通過選單,可以增加三角形,四邊形,圓形 3.對選中的圖形,可以設定填充顏色,線條寬度 4.畫三角形,四邊形,圓形,採用 bitmap 和位置兩種方式實現,位圖實現不設定填充顏色,線條寬度,隨機產生位置。5....

一道新浪面試題的解析

li x 100 for x in range 10 if x 6 li1 x 100 for x in range 10 print li print li1 執行結果 107,108,109 100,101,102,103,104,105,106,107,108,109 li lambda x ...

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...