java字符串排列組合算法 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最后100個元素就是結果??臻g復雜度為k,時間復雜度為nlogk
兩個月相當充裕。
這兩個月大致分為八周(56天)
第一周和第二周:
學習基礎知識的主要方法是看Java編程思想,用Java實現(xiàn)各種數(shù)據(jù)結構,多做些事情,敲出每個知識點。
第三,四周:
關于項目,做一些簡單的java項目,了解SSH框架。一兩個星期就夠了。
第5周:
學習Java的高級功能很困難,但實際情況并不多。如果你不明白,就看大牛的科技博客吧。
第6周:
閱讀《深入了解Java虛擬機》一書,了解Java的運行機制。
第7、8周:
閱讀和編寫優(yōu)秀項目的源代碼,閱讀GitHub上的代碼,并了解一些常見Java類的實現(xiàn)。