題1
有20個數組,每個數組裡面有500個數,升序排列,求出這10000個數字中最大的500個,求複雜度。
題2
輾轉相處的時間複雜度是多少?
Tips1
解1:強算,合併數組,排序,求解;
解2:歸併排序,有點類似歸併的中間部分,20個數組逐個歸併,不斷拿到最大的500個,直到結束
但是還有一個解3.
Tips2
輾轉相除法,又稱歐幾里得算法,用於求兩個自然數的最大公約數。
解1
利用堆。保持一個20的堆,然後先將每個數組的第1個數入堆。20個元素的堆一直保持容量為20個,20個數組的最小元素可以將20個數組的第0個元素入堆,最小堆的性質,頂點為最小值。這時候得到了500個結果裡的第0個結果。然後再把下一個元素入20個元素的堆,堆插入的時候會保持性質不變,最小元素依然在頂點。再取出20個元素的頂點,得到500個結果裡的第1個結果。
解2
算法的數論等式gcd(a,b) = gcd(b, a mod b),其時間複雜度為O(logn)。
相關推薦
'一線互聯網Java崗面試題:Spring中用了哪些設計模式?引發的深思'
"作者:Java填坑之路原文鏈接:https://www.yidianzixun.com/article/0LJMfx3B前言設計模式作為工作學習中的枕邊書,卻時常處於勤說不用的尷尬境地,也不是我們時常忘記,只是一直沒有記憶。Spring作為業界的經典框架,無論是在架構設計...
'HashMap面試專題:常問六題深入解析'
"引言其實我很早以前就想寫一篇關於HashMap的面試專題。對於JAVA求職者來說,HashMap可謂是集合類的重中之重,甚至你在複習的時候,其他集合類都不用看,專攻HashMap即可。然而,鑑於網上大部分的關於HashMap的面試方向文章,煙哥看過後都不是太滿意。因此,斗...
'HashMap框架源碼深入解讀,面試不用愁'
"在Java Collections Framework的體系中中,主要有兩個重要的接口,一個是List、Set和Queue所屬的Collection,還有一個就是Map接口了。在上一篇文章中介紹了List接口,它適用於按數值索引訪問元素的情形。本文中將介紹的Map則提供了...
'從基礎到高級,Java面試題73道,看看你掌握多少了?'
"java基礎:簡述JDK跟JRE的區別簡述path跟classpath的區別Java的關鍵字中有沒有goto”static”關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?Java中的方法覆蓋(Overriding)...
'26歲女員工面試20次,總結最多的4個面試題後感嘆:無比現實'
"在職場上,女生找工作可以說比男生難度要大很多,尤其是年齡稍微大一點,在25-35歲之間未婚的女生,找工作就更難了。原因很簡單,這個階段的女生,如果你結婚了,要面臨生孩子,面試官肯定會考慮到這一點,即使你能力達到了,也可能因為這些原因而被淘汰。最近在職場論壇上看到這樣一個帖...
'阿里最強面試題,8 年 Java 經驗我老淚縱橫'
"前些日子,阿里妹(妹子出題也這麼難)發表了一篇文章《懸賞徵集!5 道題徵集代碼界前 3% 的超級王者》——看到這個標題,我內心非常非常激動,因為終於可以證明自己技術很牛逼了。但遺憾的是,憑藉 8 年的 Java 開發經驗,我發現這五道題自己全解錯了!慘痛的教訓再次證明,我...
推薦中...