第二層
面試官對我的偷雞取巧并不滿意啊,他需要我提速,這個速度不行啊,
What??是有時間復雜度更低的嗎?不不不,這是一道核心竟然是一道多執行緒的題目,
- 將10億的資料分片,通過分治的思維對資料進行第一次處理,
- 開啟多執行緒然后對其進行這些分片的資料進行優先級佇列操作,
- 然后每個子執行緒篩選出其中最大的k個數
- 當所有執行緒執行完畢之后合并資料
我猜測的第三層
- 是不是考慮下多少個資料一分片,然后如何把效能提升到最高的問題?
- 構建多少個執行緒讀取效率是最高的?
這個都是我沒想到的,各位大佬有想法的可以聊一下啊,
題二:一篇文章內的單詞數量
這題乍一看臥槽貌似不難,foreach回圈碰到一個空格或者標點的情況下sum++,是不是就可以解決這個問題,
然而事情并沒有想想的這么簡單,面試被問到這種問題最難的是什么,可能是對于這題目真實的邊界問題的思考,
- 如果這篇文章內容很大怎么辦,會不會把記憶體吃光?
- 如何給單詞去除重復?
是不是可以考慮逐行讀取呢?
將其轉化成IO流,逐行讀取流,之后對這個輸入內容進行一次計數操作,是不是就可以解決這個問題呢,
單詞重復的問題
臥槽,這個真簡單HashSet啊!!!!那么如果海量資料我是不是又炸了?
臥槽,死亡螺旋嗎,或許我們可以考慮下用hash的方式來解決,只保留單詞的hashcode,是不是可能可以解決呢,
同樣的這個也可以使用多執行緒分片去優化
方式的話基本也和上面是完全一樣的,只要把資料分片,之后多執行緒調度,然后合并結果就可以了,
最后
最后這里放上我這段時間復習的資料,這個資料也是偶然一位朋友分享給我的,里面包含了騰訊、位元組跳動、阿里、百度2019-2021面試真題決議,并且把每個技術點整理成了視頻和PDF(知識脈絡 + 諸多細節),
還有 高級架構技術進階腦圖、高級進階架構資料 幫助大家學習提升進階,也可以分享給身邊好友一起學習,


一起互勉~
**本文已被[CODING開源專案:《Android學習筆記總結+移動架構視頻+大廠面試真題+專案實戰原始碼》](
)

收錄**
最后自我介紹一下,小編13年上海交大畢業,曾經在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現在,
深知大多數初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構動則近萬的學費,著實壓力不小,自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術停滯不前!
長或者是報班學習,但對于培訓機構動則近萬的學費,著實壓力不小,自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術停滯不前!
因此也是希望能夠幫助到想自學提升又不知道該從何學起的朋友,同時減輕大家的負擔,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317822.html
標籤:其他
上一篇:看不懂你打我全網最全的spring dispatcher請求流程決議不看就虧了
下一篇:游戲型別介紹
