這段時間聽粉絲朋友說了件事兒:
公司開發效率低下,程序員出身的老闆看過一些員工的代碼,發現明明可以用兩行代碼搞定的事情,有的人用了十幾行。更搞笑的是,有一個新人,把一個事件出現的100種情形一行一行碼出來了。老闆差點氣得把電腦砸了,但後來回過頭一想,面試招人的時候沒有注重算法的考覈,有的壓根就沒有考覈算法。
所以最近老闆從網絡上面下載了一堆百度、騰訊、字節跳動等互聯網大廠面試用的算法題,給全公司程序員來了一場別開生面的考覈。
並公開說明,想要漲薪的,就看這次成績,成績優秀的除了漲底薪之外,還提升績效工資。但是,成績過差的員工,會進行統一培訓,培訓期過後再次考覈,依舊不合格的員工將進行勸退處理。
聽到這裏,小天瞬間出了一身冷汗,但願我的公司不要做這種事情吧!
但是,算法確實是程序員不能缺失的技術能力,這將決定你開發寫代碼是否會簡便。並且,字節跳動、百度等很多大廠的面試都把算法獨立出來考察。
小天這裏整理了一套數據結構與算法有關的學習資料,還有學習路線圖:
數據結構與算法
一致性算法
Paxos
1、Paxos 三種角色
- Proposer
- Acceptor
- Learner
1.1.2. Paxos 算法分爲兩個階段
- 階段一(準 leader 確定 )
- 階段二(leader 確認)
Zab
1、崩潰恢復:主要就是 Leader 選舉過程
2、數據同步:Leader 服務器與其他服務器進行數據同步
3、消息廣播:Leader 服務器將數據發送給其他服務器
Raft
1、角色
· Leader(領導者-日誌管理)
· Follower(追隨者-日誌同步)
· Candidate(候選者-負責選票)
2、Term(任期)
3、選舉(Election)
- 選舉定時器
4、安全性(Safety)
5、raft 協議和 zab 協議區別
NWR
- N:在分佈式存儲系統中,有多少份備份數據
- W:代表一次成功的更新操作要求至少有 w 份數據寫入成功
- R: 代表一次成功的讀數據操作要求至少有 R 份數據成功讀取
Gossip
一致性 Hash
1、一致性 Hash 特性
2、一致性 Hash 原理
- 建構環形 hash 空間
- 把需要緩存的內容(對象)映射到 hash 空間
- 把服務器(節點)映射到 hash 空間
- 把對象映射到服務節點
- 考察 cache 的變動
- 虛擬節點
2. JAVA 算法
二分查找
冒泡排序算法
插入排序算法
快速排序算法
希爾排序算法
歸併排序算法
桶排序算法
基數排序算法
剪枝算法
回溯算法
最短路徑算法
最大****子****數組算法
最長公共子序算法
最小生成樹算法
3. 數據結構
棧(stack)
隊列(queue)
鏈表(Link)
散列表(Hash Table)
排序二叉樹
- 插入操作
- 刪除操作
- 查詢操作
紅黑樹
- 紅黑樹的特性
- 左旋
- 右旋
- 添加
- 刪除
B-TREE
位圖
4. 加密算法
- AES
- RSA
- CRC
- MD5
資料:算法學習內容、算法與數據結構腦圖、面試題含答案,我都已經打包好了,>點擊此處,免費領取!
大廠算法面試題
百度
1、度度熊想去商場買一頂帽子,商場裏有 N 頂帽子,有些帽子的價格可能相同。度度熊想買一頂價格第三便宜的帽子,問第三便宜的帽子價格是多少?
2、一個數軸上共有 N 個點,第一個點的座標是度度熊現在位置,第 N-1 個點是度度熊的家。現在他需要依次的從 0 號座標走到 N-1 號座標。
但是除了 0 號座標和 N-1 號座標,他可以在其餘的 N-2 個座標中選出一個點,並直接將這個點忽略掉,問度度熊回家至少走多少距離?
3、三維空間中有 N 個點,每個點可能是三種顏色的其中之一,三種顏色分別是紅綠藍,分別用'R', 'G', 'B'表示。
現在要找出三個點,並組成一個三角形,使得這個三角形的面積最大。
但是三角形必須滿足:三個點的顏色要麼全部相同,要麼全部不同。
4、.......
騰訊
1、牛牛和羊羊正在玩一個紙牌遊戲。這個遊戲一共有 n 張紙牌, 第 i 張紙牌上寫着數字ai。
牛牛和羊羊輪流抽牌, 牛牛先抽, 每次抽牌他們可以從紙牌堆中任意選擇一張抽出, 直到紙牌被抽完。
他們的得分等於他們抽到的紙牌數字總和。
現在假設牛牛和羊羊都採用最優策略, 請你計算出遊戲結束後牛牛得分減去羊羊得分等於多少。
2、小 Q 的父母要出差 N 天,走之前給小 Q 留下了 M 塊巧克力。小 Q 決定每天喫的巧克力數量不少於前一天喫的一半,但是他又不想在父母回來之前的某一天沒有巧克力喫,請問他第一天最多能喫多少塊巧克力。
3、......
以上資料:算法學習內容、算法與數據結構腦圖、面試題含答案,我都已經打包好了,>點擊此處,免費領取!