java取系統(tǒng)時(shí)間 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最后100個(gè)元素就是結(jié)果。空間復(fù)雜度為k,時(shí)間復(fù)雜度為nlogk
首先感謝吳空書記的邀請(qǐng)。這個(gè)問(wèn)題有兩種情況:
第二,輸入公式:=max(area or array),=min(area or array)
第三,時(shí)間的比較也是上述原因。
如果您有任何其他問(wèn)題,請(qǐng)?jiān)谠u(píng)論區(qū)留言。
以上是我個(gè)人對(duì)這個(gè)問(wèn)題的拙見。如果你認(rèn)為它對(duì)你有幫助,請(qǐng)喜歡它。如果你有任何意見,歡迎分享。