NO IMAGE

頭條2017年4月27號面試

一面:

  1. hashmap 的實現原理,是不是執行緒安全的?
  2. 如何解決hashmap執行緒不安全問題?
  3. 弱引用和軟引用的區別,有沒有用到過?
  4. 如何用一個陣列實現一個佇列?如果滿了怎麼辦(擴容),擴容怎麼實現?
  5. 如果實現迴圈佇列,怎麼操作?怎麼樣實現擴容?
  6. java異常介紹
  7. Android的事件分發機制,down 事件和 move up事件的監聽,傳遞狀態
  8. handler和looper之間的關係,他們怎樣通訊的,怎麼實現事件的分發
  9. 如何再一個非UI執行緒中啟動一個looper?
  10. looper.loop()內部實現機制
  11. 連結串列插入節點,反轉連結串列
  12. 快速排序
  13. http請求頭,響應頭,狀態碼
  14. http和tcp之間的關係
  15. 三次握手和四次揮手
  16. get和post區別
  17. 如何實現斷點續傳

二面:

  1. java引用傳遞和值傳遞
  2. 如何實現http請求上傳一個圖片,實時顯示上傳百分比,怎樣獲取這個比例呢?
  3. 連結串列的排序
  4. 一個陣列,如果存在一個遞增序列,則返回true,其中遞增序列位置不一定連續,如[1,-1,3,2,5],則1 3 5 構成一個遞增序列,
    如果一個都不存在的話返回false,如[1,-2,0,-7] (實現方式見leetcode/16.java,時間複雜度為n2)
  5. 專案相關,怎麼修改caffe的layer的,用的是c 的多少版本,如何實現?
  6. 剩下的就是聊天了

三面:

  1. 陣列插入元素,考慮擴容情況
  2. 瀏覽器輸入網址後的邏輯
  3. 作業系統記憶體管理
  4. jvm記憶體管理,垃圾回收機制
  5. java內部類為什麼可以訪問外部類的屬性成員
  6. 設計一個聯絡人快速查詢,可按照姓名,手機號,全拼等字首匹配

演算法總結

實現地址
程式碼地址

  1. 兩個連結串列求和,(每個連結串列的節點表示一個數的一位,注意正向和反向的問題)
  2. 字串的全排列
  3. 表示式的括號匹配
  4. 輸入一個數n,找出小於等於n且滿足一下規則的最大的數x。
    規則:x中的從左到右的每一位都是單調不減的。
  5. 實現c 的lowerr_bound,就是一個二分法
  6. 判斷一個二叉樹是平衡二叉樹。
  7. 給定一個數n,查詢樹中是否有一個路徑之後等於n。
  8. 設計LRU資料結構,寫get方法
  9. 劍指offer上的第三題,二維陣列的那道題
  10. 給一個陣列找出前k大的數
  11. 兩個有序的陣列,找到第k大的數
  12. 分層遍歷二叉樹
  13. 給一個矩陣從左上角走到右下角,只能往右或者向下,找出最小的和
  14. 給一個左開右閉區間,去掉包含3,5,7的數
  15. 一個完全二叉樹,插入一個節點,還是完全二叉樹
  16. topk問題
  17. 連結串列的倒數第k個節點
  18. 最長迴文子串
  19. 一個字串最少操作改成另一個
  20. 二叉樹和為n的子結構集合
  21. 一個陣列沒有重複的數,求子集
  22. 兩個二進位制字串求和
  23. 快速排序
  24. 斐波那契
  25. 樹的各種非遞迴遍歷