●前言 面試筆試經驗技巧篇 經驗技巧1 如何巧妙地回答面試官的問題2 經驗技巧2 如何回答技術性的問題3 經驗技巧3 如何回答非技術性問題4 經驗技巧4 如何回答快速估算類問題5 經驗技巧5 如何回答算法設計問題6 經驗技巧6 如何回答繫統設計題8 經驗技巧7 如何解決求職中的時間衝突問題11 經驗技巧8 如果面試問題曾經遇見過,是否要告知面試官12 經驗技巧9 在被企業拒絕後是否可以再申請12 經驗技巧10 如何應對自己不會回答的問題13 經驗技巧11 如何應對面試官的“激將法”13 經驗技巧12 如何處理與面試官持不同觀點這個問題14 經驗技巧13 什麼是職場暗語14面試筆試真題解析篇 章 經典算法題191.1 有多少蘋果用來分贓191.2 哪隻猴子可以當大王201.3 移動多少盤子纔能完成漢諾塔遊戲211.4 如何利用約瑟夫環來保護你與你的朋友221.5 怎樣纔能得到阿姆斯壯數241.6 如何獲取規定的排列組合251.7 如何實現洗牌算法261.8 怎樣求出斐波那契數列271.9 如何實現楊輝三角281.10 牛的數量有多少291.11 百錢買百雞291.12 經過這個路口多少次301.13 球的反彈高度有多高311.14 如何找出1000以內的“完數”311.15 猴子喫了多少桃子321.16 移動最少次數的三色旗33 第2章 邏輯、智力題352.1 經典邏輯題352.1.1 老鼠相遇的概率是多少352.1.2 如何計算時鐘的三針重疊352.1.3 如何喝到最多瓶汽水362.1.4 住旅店花了多少錢362.1.5 如何判斷哪個開關控制著哪盞燈362.1.6 如何用燒繩來計算時間362.1.7 如何用水壺獲取指定的水量372.1.8 怎樣纔能猜出另外兩個人的數372.1.9 賣雞總共賺了多少382.1.10 跳高名次是多少382.1.11 如何根據銀幣猜盒子392.1.12 馬牛羊的價格是多少文錢392.1.13 賠多少392.1.14 海盜如何分金纔能讓他獲得最多的金子402.1.15 張老師的生日是哪一天412.1.16 拿幾個乒乓球412.2 邏輯推理題422.2.1 怎樣纔能推理出學生的專業422.2.2 錯誤的判斷是哪一個432.2.3 最後參加緊急項目的開發人是誰432.2.4 猜的個數字是多少432.2.5 需要多少個人測試纔能判斷出毒酒442.2.6 地圖重合點有幾個452.2.7 掰斷多少次金條纔能按要求給雇工報酬462.2.8 握手次數是多少462.2.9 如何判斷出壞雞蛋472.3 概率與組合482.3.1 抽球人數是多少482.3.2 案件發生在A區的可能性是多少482.3.3 男女比例將會是多少482.3.4 對稱矩陣有多少個492.3.5 A、B點有多少種走法492.3.6 多少種排隊方式502.3.7 把球放到小桶中有多少種放法512.3.8 正確描述100臺虛擬機發生故障的是哪一個512.3.9 圓桌上一共有多少種坐法512.3.10 兵馬俑博物館可容納多少人522.3.11 兩種策略的預期收益是多少522.3.12 拾起別人帽子的概率是多少532.3.13 合法表達式有多少個532.3.14 會寫Java和C++程序的有多少人542.3.15 乘坐甲車的概率是多少542.3.16 A到Z的最短路徑數是多少542.3.17 選取紅黃白球的概率是多少552.3.18 一共有多少種染況552.3.19 肇事車是白車的概率是多少552.3.20 獲得冠軍的情況有多少種562.3.21 一紅一黑的概率是多少562.3.22 誰會贏562.3.23 描述正確的是哪一項572.4 數學計算582.4.1 一共等了女神多少分鐘582.4.2 使用了什麼進制運算582.4.3 三角形有多少個592.4.4 數列的規律是什麼602.4.5 數列使用了什麼規律602.4.6 餘數是多少602.4.7 如何纔能找到最好的羽毛球員工612.4.8 亮著的燈泡有多少個612.4.9 工作時長是多少622.4.10 最小夾角是多少度622.4.11 求解到的餘數是多少622.4.12 如何正確計算餘數632.4.13 最高效的矩陣是哪個632.4.14 可以實現的函數是哪個632.4.15 可以兌換多少瓶加多寶642.4.16 共賺多少錢642.4.17 實際是多少65 第3章 排序算法663.1 如何實現冒泡排序673.2 什麼是插入排序703.3 歸並排序的原理是什麼723.4 快速排序使用了什麼思想733.5 選擇排序的實現過程是怎樣的753.6 什麼叫希爾排序783.7 如何實現堆排序793.8 計數排序的原理是什麼813.9 怎樣用JavaScript代碼實現桶排序83 第4章 鏈表854.1 如何實現鏈表的逆序854.2 如何從無序鏈表中移除重復項914.3 如何計算兩個單鏈表所代表的數之和954.4 如何對鏈表進行重新排序994.5 如何找出單鏈表中的倒數素1024.6 如何檢測一個較大的單鏈表是否有環1074.7 如何把鏈素翻轉1104.8 如何把鏈表以k個結點為一組進行翻轉1124.9 如何合並兩個有序鏈表116 第5章 棧與隊列1205.1 如何實現棧1205.2 如何實現隊列1245.3 如何翻轉棧素1285.4 如何根據入棧序列判斷可能的出棧序列1345.5 如何用O(1)的時間復雜度求棧素1385.6 如何用兩個棧模擬隊列操作140 第6章 二叉樹1416.1 二叉樹基礎知識1416.2
內容簡介
本書是一本講解前端程序員面試筆試真題的書籍,在寫法上,除了講解如何解答算法問題以外,還引入了示例輔以說明,讓讀者能夠更容易理解。本書將程序員面試筆試過程中各類算法類真題一網打盡,在題目的廣度上,通過各種渠道,搜集了近3年來典型IT企業面試筆試算法高頻題目,所選擇題目均為企業招聘使用題目。在題目的深度上,本書由淺入深,詳細分析每一個題目,並提煉歸納。同時,引入例子與源代碼、時間復雜度與空間復雜度的分析,而這些內容是其他同類書籍所沒有的。本書根據真題所屬知識點進行分門別類,結構合理、條理清晰,對於讀者進行學習與檢索意義重大。本書是一本計算機相關專業畢業生面試筆試的求職用書,也可以作為本科生、研究生學習數據結構與算法的輔導書籍,同時也適合期望在計算機軟硬件行業大顯身手的計算機愛好者閱讀。
計算機技術博大精深,日新月異,Hadoop、GPU計算、移動互聯網、模式匹配、圖像識別、神經網絡、蟻群算法、大數據、機器學習、人工智能、深度學習等新技術讓人眼花繚亂,稍有懈怠,就會被時代所拋棄。於是,很多IT從業者就開始困惑了,不知道從何學起,到底什麼纔是計算機技術的基石。其實,其本質還是最基礎的數據結構與算法知識:Hash、動態規劃、分治、排序、查找等,所以,無論是世界級的大型企業還是幾個人的小公司,在面試求職者的時候,往往會考察這些最基礎的知識,無論你的研究方向是什麼,這些基礎知識還是應該熟練掌握的。本書正是從這些基礎知識點出發,講解了求職過程中常見的數據結構與算法的真題,從而讓求職者能輕松應付算法類的筆試面試題目。在寫作風格上,推陳出新,對於算法的講解,不僅使用圖文並茂的方式,而且還輔以示例的講解,目的就是為了使讀者更容易理解。為了能夠寫出精品書籍,我們對每一個技術問題,都反復推敲,......
"