1. 程式人生 > >算法崗面經總結-今日頭條

算法崗面經總結-今日頭條

矩陣 方式 字典序 翻轉二叉樹 整數 恢復 href 最優 打印矩陣

算法題:

參考:https://www.cnblogs.com/DarrenChan/p/8779509.html

  • 翻轉二叉樹
  • 最大連續子串和
  • 給一棵邊權樹樹找到最大路徑,要找到兩個端點怎麽辦
  • 給一個字符串和單詞列表,判斷字符串能不能由這些單詞組成
  • 給定一組股票的價格,最多買賣0一次,問最大收益
  • !!!二叉樹任意兩個節點之間路徑的最大長度
  • 二叉樹的深度
  • lfu
  • 一個鏈表 奇數位升序偶數位降序 讓鏈表變成升序的
  • 給你一個循環後的數組 比如 45123 問你恢復原數組 最少幾步 原數組是升序的
  • 一個數組 裏面存著 1 -- 無窮大的數 但是他的十位數 比如 10 拆成了 1 和0 問你這樣拆分的數組裏 讓你求i位置的數字是啥 數字肯定就是0-9的數
  • !!! 0-25表示A-Z,給一個數字字符串,求有多少種解碼方式
  • 給定一個亂序的鏈表,現在有一個操作,可以把鏈表任意位置的值移動到鏈表的最後。求鏈表排序所需要的最少操作次數。
  • 已知一個函數rand3() 可以等概率隨機產生1,2,3,請實現函數rand7(),可以等概率隨機產生1~7
  • 當你在搜索框輸入h的時候會出現一些h開頭的單詞,然後再輸入一個a(ha),會出現ha開頭的很多單詞,現在給你一個詞典,讓你實現這個功能,當用戶動態的輸入字母時,跳出以此字符串為前綴的所有單詞,要求時間復雜度最優
  • 找一下兩個節點的LCA
  • !!!給出k對括號的全部正確匹配方案,如k=2,輸出()(),(())
  • 將一些柱子整齊的擺在一行(立著),高度存在數組height[]中,height[i]表示第i個柱子高為height[i],然後往凹下去的地方倒水,問一共能蓄多少單位水,比如[5,1,3,4,5,1,3],答案是7 2=9
  • 快速排序
  • 拋2k+1次硬幣,問正面次數比背面多的概率是多大,並講出數學證明思路
  • 給N個數字,返回這N個數字能組成的所有二叉搜索樹
  • 給一個字符串,得到它字典序最大的子序列
  • n個整數的無序數組,找到每個元素後面比它大的第一個數
  • LRU
  • 實現一個二叉樹的持久化方案
  • 實現二叉樹的層序遍歷
  • 旋轉打印矩陣

 概率題

  拋2k+1次硬幣,問正面次數比背面多的概率是多大,並講出數學證明思路。

解:2k+1次,所以正面反面次數肯定不相等,要不正面多,要不反面多。正面反面實力相同,所以1/2。

證明的話用古典概型,分母為C2k+1_i,i=0,1,...2k+1,分子為C2k+1_j,j = k+1,...2k+1,因為Cn_m = Cn_n-m,因此分子等於分母的一半

算法崗面經總結-今日頭條