幫助中心 | 我的帳號 | 關於我們

矽谷Python工程師面試指南(數據結構演算法與系統設計)

  • 作者:任建峰//全書學|責編:楊福川//趙曉峰
  • 出版社:機械工業
  • ISBN:9787111750680
  • 出版日期:2024/05/01
  • 裝幀:平裝
  • 頁數:254
人民幣:RMB 89 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是一本全面的Python技術及面試指南,旨在幫助讀者深入理解Python編程語言的核心概念,並掌握在技術面試中取得成功的關鍵技巧。全書分為4個部分。
    第一部分面試流程。這一部分詳細介紹了矽谷公司的面試流程,包括非技術電話面試、技術電話面試(包括閑談、技術溝通和提問環節)以及現場面試的準備和策略,既為讀者提供了面試前的全面準備指導,也幫助讀者在面試中展現出良好狀態。
    第二部分數據結構。從基礎的列表、堆棧、隊列、優先隊列、字典和集合,到更複雜的鏈表、二叉樹、其他樹結構(如前綴樹、線段樹、二叉索引樹)和圖的表示與應用,每一章都通過豐富的實例來展示如何巧妙應用這些數據結構。
    第三部分演算法。這一部分覆蓋了二分搜索、雙指針法、動態規劃、深度優先搜索、回溯、廣度優先搜索、並查集等核心演算法。結合面試真題,通過逐步分析,引導讀者掌握每種演算法的思想及其在解決實際問題中的應用。
    第四部分系統設計。理論知識部分,從設計需求分析到高層構建,然後到具體組件設計,再到擴展設計,幫助讀者理解如何構建可擴展、高效的系統架構。

作者介紹
任建峰//全書學|責編:楊福川//趙曉峰

目錄
前言
第一部分  面試流程
  第1章  矽谷公司面試流程
    1.1  非技術電話面試
    1.2  技術電話面試
      1.2.1  閑談環節
      1.2.2  技術溝通環節
      1.2.3  提問環節
    1.3  現場面試
      1.3.1  準備好閑談素材
      1.3.2  保持積極溝通
第二部分  數據結構
  第2章  列表
    2.1  列表的基礎知識
      2.1.1  創建列表
      2.1.2  向列表中添加元素
      2.1.3  刪除列表中的元素
    2.2  實例1:最長連續1的個數
    2.3  實例2:二進位相加
    2.4  實例3:查詢範圍和
      2.4.1  利用一維數組求解
      2.4.2  利用二維數組求解
    2.5  實例4:隨機索引
    2.6  實例5:下一個更大排列
    2.7  實例6:驗證有效數字
    2.8  實例7:遞歸小數
  第3章  堆棧
    3.1  堆棧的基礎知識
      3.1.1  堆棧操作及時間複雜度
      3.1.2  3種實現方式
      3.1.3  堆棧的應用
    3.2  實例1:通過最小移除操作得到有效的括弧
    3.3  實例2:函數的專用時間
  第4章  隊列
    4.1  隊列的3種實現方式
    4.2  實例1:設計循環隊列
    4.3  實例2:求和大於K的最短非空連續子數組的長度
  第5章  優先隊列
    5.1  優先隊列的3種實現方式
    5.2  實例1:僱用K個工人的最低成本
    5.3  實例2:判斷數組是否可以拆分為連續的子序列
  第6章  字典
    6.1  字典的基礎知識
      6.1.1  創建字典
      6.1.2  向字典中添加元素
      6.1.3  訪問字典中的元素
      6.1.4  從字典中刪除元素
    6.2  實例1:和等於K的連續子數組的總數
    6.3  實例2:標籤中的最大值
    6.4  實例3:以平均時間複雜度O(1)實現插入、刪除和獲取隨機值

    6.5  實例4:最近最少使用緩存
  第7章  集合
    7.1  集合的基礎知識
    7.2  集合的基本操作
      7.2.1  添加元素
      7.2.2  刪除元素
      7.2.3  並集
      7.2.4  交集
  第8章  鏈表
    8.1  雙指針技術
    8.2  實例1:判斷鏈表是否有循環
    8.3  實例2:兩個鏈表的交集
    8.4  實例3:克隆隨機鏈表
    8.5  實例4:反轉鏈表
  第9章  二叉樹
    9.1  層次順序遍歷
      9.1.1  前序遍歷
      9.1.2  中序遍歷
      9.1.3  後序遍歷
      9.1.4  層序遍歷
    9.2  遞歸方法用於樹的遍歷
      9.2.1  自上而下的解決方案
      9.2.2  自下而上的解決方案
    9.3  實例1:二叉樹的最低共同祖先
    9.4  實例2:序列化和反序列化二叉樹
    9.5  實例3:求二叉樹的最大路徑和
    9.6  實例4:將二叉樹轉換為雙鏈表
  第10章  其他樹結構
    10.1  前綴樹
      10.1.1  前綴樹節點的數據結構
      10.1.2  在前綴樹中插入單詞
      10.1.3  在前綴樹中搜索單詞
    10.2  線段樹
    10.3  二叉索引樹
      10.3.1  二叉索引樹的表示
      10.3.2  getSum操作
      10.3.3  update操作
      10.3.4  二叉索引樹的工作原理
    10.4  實例1:範圍和的個數
      10.4.1  利用線段樹求解
      10.4.2  利用二叉索引樹求解
      10.4.3  利用二分搜索求解
    10.5  實例2:計算後面較小數字的個數
      10.5.1  二叉索引樹解法
      10.5.2  二分搜索解法
      10.5.3  線段樹解法
  第11章  圖
    11.1  圖的表示
      11.1.1  鄰接矩陣
      11.1.2  鄰接表

    11.2  實例1:克隆圖
    11.3  實例2:圖驗證樹
      11.3.1  深度優先搜索解法
      11.3.2  廣度優先搜索解法
      11.3.3  並查集解法
第三部分  演算法
  第12章  二分搜索
    12.1  實例1:求平方根
    12.2  實例2:在旋轉排序數組中搜索
    12.3  案例3:會議室預訂問題
      12.3.1  問題1:如何優化
      12.3.2  問題2:如何預訂多個房間
  第13章  雙指針法
    13.1  實例1:稀疏向量的點積
    13.2  實例2:最小窗口子字元串
    13.3  實例3:間隔列表相交
    13.4  實例4:最長連續1的個數
    13.5  實例5:查找字元串中的所有字母
  第14章  動態規劃
    14.1  動態規劃的基礎知識
    14.2  實例1:買賣股票的最佳時間
    14.3  實例2:硬幣找零
    14.4  實例3:計算解碼方式總數
  第15章  深度優先搜索
    15.1  深度優先搜索的應用
    15.2  實例1:太平洋和大西洋的水流問題
    15.3  實例2:預測獲勝者
    15.4  實例3:表達式加運算符
  第16章  回溯
    16.1  實例1:數獨求解
    16.2  實例2:掃地機器人
  第17章  廣度優先搜索
    17.1  廣度優先搜索的應用
    17.2  實例1:牆和門
    17.3  實例2:課程表
    17.4  實例3:公交路線
    17.5  實例4:判斷二分圖
    17.6  實例5:單詞階梯
  第18章  並查集
    18.1  並查集的基礎知識
    18.2  實例:朋友圈
      18.2.1  廣度優先搜索解法
      18.2.2  深度優先搜索解法
      18.2.3  並查集解法
  第19章  數據結構與演算法面試真題實戰
    19.1  實例1:文件系統
      19.1.1  關於數據結構的探討
      19.1.2  面試題考查點
      19.1.3  完整代碼
    19.2  實例2:最長有效詞

      19.2.1  找到更快的解決方案
      19.2.2  基於存儲/緩存的解決方案
      19.2.3  面試題考查點
    19.3  實例3:圓圈組
      19.3.1  圓圈組的個數
      19.3.2  最大的k個圓圈組
第四部分  系統設計
  第20章  系統設計理論
    20.1  設計步驟
      20.1.1  描述使用場景、約束和假設
      20.1.2  構建高層設計
      20.1.3  設計核心組件
      20.1.4  擴展設計
    20.2  域名系統
    20.3  負載均衡器
    20.4  分散式緩存系統
    20.5  哈希一致性
  第21章  系統設計實戰
    21.1  設計分散式緩存系統
      21.1.1  緩存無效
      21.1.2  緩存逐出策略
      21.1.3  設計分散式鍵值緩存系統
    21.2  設計網路爬蟲系統
      21.2.1  架構設計
      21.2.2  爬蟲服務
      21.2.3  處理重複鏈接
      21.2.4  更新爬網結果
      21.2.5  可擴展性設計
    21.3  TinyURL的加密與解密
      21.3.1  系統的要求和目標
      21.3.2  容量估算和約束
      21.3.3  系統API
      21.3.4  核心演算法設計
      21.3.5  資料庫設計
      21.3.6  數據分區和複製
      21.3.7  緩存
      21.3.8  負載均衡器
    21.4  設計自動補全功能
      21.4.1  基本系統設計與演算法
      21.4.2  主數據結構
      21.4.3  優化設計
    21.5  設計新聞動態功能
    21.6  設計X(Twitter)應用
    21.7  設計Uber/Lyft應用
  第22章  多線程編程
    22.1  多線程面試問題
    22.2  實例1:形成水分子
    22.3  實例2:列印零、偶數、奇數
  第23章  設計機器學習系統
    23.1  機器學習的基礎知識

      23.1.1  什麼是機器學習
      23.1.2  為什麼使用機器學習
      23.1.3  監督學習和無監督學習
      23.1.4  分類模型和回歸模型
      23.1.5  轉換問題
      23.1.6  關鍵數據
      23.1.7  機器學習工作流程
      23.1.8  欠擬合和過擬合
      23.1.9  偏差和方差
    23.2  機器學習的進階知識
      23.2.1  處理不平衡的二進位分類
      23.2.2  高斯混合模型和K均值的比較
      23.2.3  梯度提升
      23.2.4  決策樹的約束
      23.2.5  加權更新
      23.2.6  隨機梯度提升
      23.2.7  懲罰性學習
    23.3  機器學習面試
      23.3.1  機器學習面試考查點
      23.3.2  機器學習面試的思路
    23.4  實例1:搜索排名系統
      23.4.1  題目解讀
      23.4.2  指標分析
      23.4.3  架構
      23.4.4  結果選擇
      23.4.5  訓練數據生成
      23.4.6  排名
      23.4.7  篩選結果
    23.5  實例2:Netflix電影推薦系統
      23.5.1  題目解讀
      23.5.2  指標分析
      23.5.3  架構
      23.5.4  特徵工程
      23.5.5  候選電影的產生
      23.5.6  訓練數據生成
      23.5.7  排名

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032