九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
泄題了?Java程序員最可能被考到的面試題,命中率極高!

作為程序員在面試的時(shí)候碰到的問(wèn)題還是很多的,不光要掌握像數(shù)組、鏈表、棧、隊(duì)列和樹(shù)這樣基本的數(shù)據(jù)結(jié)構(gòu),在面試中還會(huì)碰到數(shù)據(jù)結(jié)構(gòu)和算法問(wèn)題。所以小編在這里告訴大家,下面的面試題目很有可能被碰到,一起來(lái)看看吧!

1. 如何只掃描一遍就找到位于一個(gè)鏈表正中間的元素?

這是最受歡迎的算法題之一,經(jīng)常在電話面試中被問(wèn)到。很多程序員會(huì)想,要知道鏈表的長(zhǎng)度,就要先掃描一遍鏈表,然后在第二遍中取其正中的元素。所以被要求只掃描一遍就解決問(wèn)題的時(shí)候他們就會(huì)很困惑。要解決這個(gè)問(wèn)題,你要維護(hù)兩個(gè)指針。一個(gè)每次往下走一個(gè)結(jié)點(diǎn),而另一個(gè)每次走兩個(gè)結(jié)點(diǎn)。那么當(dāng)走的快的指針到達(dá)鏈表末尾時(shí),另一個(gè)指針就正好指在鏈表的正中間。


2. 如何確定一個(gè)鏈表中是否存在環(huán)?

這跟第一題有點(diǎn)類似。同樣地維護(hù)兩個(gè)指針,分別以每步一個(gè)結(jié)點(diǎn)和每步兩個(gè)結(jié)點(diǎn)的速度走,那么如果當(dāng)某一步結(jié)束以后兩個(gè)指針指向同一個(gè)結(jié)點(diǎn),就說(shuō)明我們找到了一個(gè)環(huán)。

3. 如何只掃描一遍就找到一個(gè)鏈表倒數(shù)第三個(gè)元素?

這也是一個(gè)很經(jīng)典的鏈表題,也可以用兩個(gè)指針的方法來(lái)解決。我們讓第一個(gè)指針先走,當(dāng)它走出三步以后再讓第二個(gè)指針開(kāi)始走。那么當(dāng)?shù)谝粋€(gè)指針到達(dá)鏈表的末尾時(shí),第二個(gè)指針就正好指向鏈表中的倒數(shù)第三個(gè)元素。


4. 如何找到一個(gè)含有 1~100 的數(shù)組中唯一出現(xiàn)兩次的元素?

這是一個(gè)挺簡(jiǎn)單的算法題。你可以把數(shù)組里面所有元素加起來(lái),再減去 1~100 的和,就能得到那個(gè)重復(fù)的元素。當(dāng)然你也可以暴力地去比對(duì)每一對(duì)元素,不過(guò)這樣的復(fù)雜度是 O(N^2)。


5. 如何在 Java 中反轉(zhuǎn)一個(gè)字符串?

這是我最喜歡的問(wèn)題之一。因?yàn)?String 是編程中最重要的類型之一,所以在技術(shù)面試中你會(huì)遇到許多跟字符串有關(guān)的問(wèn)題。Java 和其他編程語(yǔ)言都有許多不同的方式可以反轉(zhuǎn)一個(gè)字符串,所以面試官往往會(huì)禁止你使用某些特性,比如 reverse() 和 StringBuffer。之后他還可能會(huì)問(wèn)如何用遞歸來(lái)反轉(zhuǎn)字符串。

6. 如何用冒泡排序?qū)?shù)組進(jìn)行排序?

在技術(shù)面試中我總是會(huì)問(wèn)一些關(guān)于搜索和排序的問(wèn)題。冒泡排序是最簡(jiǎn)單的排序算法之一,但如果你讓一個(gè)候選人現(xiàn)場(chǎng)寫冒泡排序,這能夠很好地衡量他的編程技能。

7. 棧和隊(duì)列這兩種數(shù)據(jù)結(jié)構(gòu)之間的區(qū)別是什么?

這是一個(gè)經(jīng)典的數(shù)據(jù)結(jié)構(gòu)問(wèn)題,應(yīng)該沒(méi)有人不知道的吧?不管怎么說(shuō),最主要的區(qū)別在于棧是后進(jìn)先出(LIFO),而隊(duì)列是先進(jìn)先出(FIFO)的。

8. 如何找到一個(gè)數(shù)組中所有重復(fù)出現(xiàn)的元素?

這個(gè)問(wèn)題有時(shí)會(huì)作為第 4 題的后續(xù)出現(xiàn)。解決這個(gè)問(wèn)題的一種途徑是使用哈希表。遍歷整個(gè)數(shù)組并將元素和出現(xiàn)次數(shù)存到哈希表中。最后你就可以統(tǒng)計(jì)那些出現(xiàn)超過(guò)一次的元素作為答案。在 Java 中,當(dāng)一個(gè)元素已經(jīng)在 HashMap 中時(shí),調(diào)用 get(index) 就可以得到對(duì)應(yīng)的值,否則會(huì)返回 Null。這個(gè)性質(zhì)可以用來(lái)插入和更新 HashMap 中的值。


9. 單向鏈表和雙向鏈表之間有什么差別?

這又是一個(gè)經(jīng)常在電話面試中被問(wèn)到的數(shù)據(jù)結(jié)構(gòu)題。單向鏈表和雙向鏈表之間主要的差別在于它們的可遍歷性不同。在單向鏈表中,每個(gè)結(jié)點(diǎn)只有指向下一個(gè)結(jié)點(diǎn)的指針,而沒(méi)有指向上一個(gè)結(jié)點(diǎn)的指針,所以你就不能倒回去遍歷。而雙向鏈表的結(jié)點(diǎn)則維護(hù)了兩個(gè)指針,往兩個(gè)方向都可以遍歷。


10. 如何打印斐波那契數(shù)列?

這是一個(gè)在面試中經(jīng)常出現(xiàn)的編程問(wèn)題。斐波那契數(shù)列是這樣的一種數(shù)列:它的每一項(xiàng)都等于前兩項(xiàng)之和,例如:1,1,2,3,5,8,13,21。面試官往往會(huì)關(guān)心這兩件事情:一個(gè)能夠返回斐波那契數(shù)列第 n 項(xiàng)的函數(shù),以及如何在 Java 中用遞歸解決這個(gè)問(wèn)題。雖然這個(gè)問(wèn)題很簡(jiǎn)單,但遞歸的部分可能會(huì)困惑一些初學(xué)者。

11. 如何判斷一個(gè)整數(shù)是不是回文數(shù)?

跟前一題一樣,這也不是一個(gè)算法題,但在面試中的出現(xiàn)率也很高。當(dāng)一個(gè)數(shù)反過(guò)來(lái)寫還是等于本身時(shí),我們稱之為回文數(shù)。面試官往往會(huì)要求你不使用 Java API 和第三方庫(kù)來(lái)解這個(gè)問(wèn)題。當(dāng)然,問(wèn)題本身不難。你只要會(huì)用 / 和 % 就能解決它。/ 能去掉最后一位,而 % 能得到最后一位。比如 1234 / 10 會(huì)得到 123,而 1234 % 10 則能得到 4。


12. 什么是二叉查找樹(shù)?

這是一個(gè)關(guān)于樹(shù)的數(shù)據(jù)結(jié)構(gòu)問(wèn)題。二叉查找樹(shù)滿足一些特殊的性質(zhì),比如說(shuō)每個(gè)結(jié)點(diǎn)的左子樹(shù)中的值都要比自身小,而右子樹(shù)中的值都要比自身大,等等。除了定義以外,面試官還可能讓你在 Java 中實(shí)現(xiàn)一棵二叉樹(shù)并詢問(wèn)關(guān)于樹(shù)的遍歷的問(wèn)題。比如中序遍歷、先序遍歷和后序遍歷之間的區(qū)別。


13. 如何分別用遞歸和非遞歸方式倒置一個(gè)鏈表?

這是一個(gè)非常好的數(shù)據(jù)結(jié)構(gòu)題,所以我希望你自己去思考。當(dāng)然你也能輕易地在網(wǎng)上找到許多解法。

14. 如何用 Java 實(shí)現(xiàn)一個(gè)棧?

你可以用數(shù)組或者鏈表來(lái)實(shí)現(xiàn)棧。這個(gè)問(wèn)題期望你實(shí)現(xiàn)棧所提供的標(biāo)準(zhǔn)接口,也就是 push()和 pop()。這兩個(gè)操作都應(yīng)該發(fā)生在棧的頂部。當(dāng)然,如果你能實(shí)現(xiàn) contains() 和 isEmpty() 這樣的功能就更好了。順便一提,你可以利用 JDK 提供的 java.util.Stack 來(lái)學(xué)習(xí)怎么實(shí)現(xiàn)一個(gè)棧。


Java程序員最可能被考到的面試題到這里就給大家介紹完了,希望能幫助到大家,如果小編有不足之處歡迎大家補(bǔ)充哦!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一小時(shí)讀完劍指offer(全題目精校版)
C語(yǔ)言鏈表理解
十大排序算法(java實(shí)現(xiàn))
數(shù)據(jù)結(jié)構(gòu)
原創(chuàng)面試資源免費(fèi)送,Android、算法、面題一應(yīng)俱全
課后習(xí)題講解 (數(shù)據(jù)結(jié)構(gòu))
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服