java獲取list某個(gè)字段的值 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因?yàn)檫@是一個(gè)Java問題,所以這是典型的TOPK問題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因?yàn)檫@是一個(gè)Java問題,所以這是典型的TOPK問題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最后100個(gè)元素就是結(jié)果??臻g復(fù)雜度為k,時(shí)間復(fù)雜度為nlogk
首先判斷列表的大小。如果列表中只有一個(gè)或沒有元素,請盲目使用它列表.獲?。?) 可以報(bào)告空指針異常。合理的方法是如果(列出!=空值(&A)列表大小>=2){系統(tǒng)輸出打?。ā傲斜碇械牡诙€(gè)元素”列表.獲?。?) )}空指針破壞一代又一代的程序員。當(dāng)我們不能完全確認(rèn)它不是空的時(shí)候,我們應(yīng)該到處設(shè)置防御。這樣,程序雖然冗長,但出錯(cuò)的可能性大大降低,更有利于故障排除。