Java開發崗面試中的一些演算法題和思想

2021-07-30 01:13:46 字數 618 閱讀 3453

一、最小的

k個數的解決方案:

方法一:就是利用快速排序的思想,直接找到pivot為k,然後返回前面k個數,時間複雜度為o(n)

方法二:適用於海量資料的處理,建立乙個大小為k的容器,每次讀入乙個數,若容器不滿,則繼續新增。當容器滿了之後,有三件事要做:在k個整數中找到最大數、二是有可能在容器中刪除這個數、三是有可能要將這個數插入到容器中;時間複雜度是o(nlog2n) 第

二、超大資料的排序(使用布隆過濾器(

bloom filter

)進行大資料量排序,也就是位運算在排序與搜尋中的應用)

bit位操作 思考下面的問題: 乙個最大的9位整數為999999999 這9億條資料是不重複的,可不可以把這些資料組成乙個佇列或陣列,讓它有0~999999999(10億個)元素陣列下標表示數值,節點中用0表示這個數 沒有,1表示有這個數,判斷0或1只用乙個bit儲存就夠了

宣告乙個可以包含9位整數的bit陣列(10億),一共需要10億/8=120m記憶體,把記憶體中的資料全部初始化為0 ,讀取檔案中的資料,並將資料放入記憶體。比如讀到乙個資料為341245909這個資料,那就先在記憶體中找到341245909這個bit,並將bit值 置為1 ,遍歷整個bit陣列,將bit為1的陣列下標存入檔案

近期面試Android崗的一些想法

近期為了找實習,筆試 面試了一些網際網路方面的公司。整理問題如下 經過這一段時間的筆試和面試,發現最重要的還是基本功,基本功,基本功。無論是筆試時寫演算法,或是技術麵時回答面試官的問題。能做出來,答上來和做不出,答不出完全是兩個概念。這部分的差距足以覆蓋其他所有部分的總和。除此之外,技術崗還是不要吹...

JAVA開發中遇到的一些單詞

current 現在 scope 範圍 process 處理 generate 生成 operator 操作人 dept 部門 variable 變數 initializer 初始化 redundant 多餘 duplicate 複製品 unversioned 非版本的 untracked 未跟蹤的...

iOS開發 一些面試演算法總結

由於最近需要面試,筆試的時候遇到了不同的演算法,上網搜了一些 這裡把常考到的常用排序演算法簡單彙總了下。包括氣泡排序,簡單選擇排序,直接插入排序,希爾排序,堆排序和快速排序。objc view plain copy 常用排序彙總 include void swap intint a,intint b...