宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

186道高階算法題和高階算法學習資料已經被我整理成PDF,有需要這份PDF的朋友關注後轉發私信我(算法)即可獲取免費下載方式

算法是敲門磚

對於字節這樣注重算法的大廠來說,不會算法基本上是與之無緣。前陣子因為疫情原因離職三個月,憑著一份算法寶典,在字節打開了新世界。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

大廠必考:186道算法真題(帶解析)

  1. 有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
  2. 一個整數,它加上100後是一個完全平方數,加上168又是一個完全平方數,請問該數是多少?
  3. 輸入某年某月某日,判斷這一天是這一年的第幾天?
  4. 輸入三個整數x,y,z,請把這三個數由小到大輸出。
  5. 輸出9*9口訣?
  6. 利用遞歸方法求5!
  7. 兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽籤決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。
  8. 有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和
  9. 兔子的規律為數列1,1,2,3,5,8,13,21....
  10. 判斷101-200之間有多少個素數,並輸出所有素數。
  11. 打印出所有的 "水仙花數 ",所謂 "水仙花數 "是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個 "水仙花數 ",因為153=1的三次方+5的三次方+3的三次方
  12. 將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5
  13. 利用條件運算符的嵌套來完成此題:學習成績> =90分的同學用A表示,60-89分之間的用B表示
  14. 輸入兩個正整數m和n,求其最大公約數和最小公倍數
  15. 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數
  16. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制
  17. 一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.編程 找出1000以內的所有完數
  18. 一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高
  19. 給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字
  20. 請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。
宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

刷題能理解算法題答案的由來,但是真正面試考的是你是否真正搞懂了算法,搞懂算法其實真不算難。多看資料多刷題,一切都不是問題。小編整理了一份關於算法的秘笈,需要的朋友關注轉發並私信我(算法)即可獲得免費下載方式

高階算法類型

二分算法

又叫折半查找,要求待查找的序列有序。每次取中間位置的值與待查關鍵字比較,如果中間位置的值比待查關鍵字大,則在前半部分循環這個查找的過程,如果中間位置的值比待查關鍵字小,則在後半部分循環這個查找的過程。直到查找到了為止,否則序列中沒有待查的關鍵字。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

冒泡排序算法

比較前後相鄰的二個數據,如果前面數據大於後面的數據,就將這二個數據交換。這樣對數組的第 0 個數據到 N-1 個數據進行一次遍歷後,最大的一個數據就“”到數組第N-1 個位置。N=N-1,如果 N 不為 0 就重複前面二步,否則排序完成。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

歸併排序算法

歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然後再把有序的序列合併為整體有序序列。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

桶排序算法

桶排序的基本思想是: 把數組 arr 劃分為 n 個大小相同的區間(桶),每個子區間各自排序,最後合併 。計數排序是桶排序的一種特殊情況,可以把計數排序當成每個桶裡只有一個元素的情況。

  1. 1.找出待排序數組中的最大值 max、最小值 min
  2. 2.我們使用 動態數組 ArrayList 作為桶,桶裡放的元素也用 ArrayList 存儲。桶的數量為(maxmin)/arr.length+1
  3. 3.遍歷數組 arr,計算每個元素 arr[i] 放的桶
宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

基數排序算法

將所有待比較數值(正整數)統一為同樣的數位長度,數位較短的數前面補零。然後,從最低位開始,依次進行一次排序。這樣從最低位排序一直到最高位排序完成以後,數列就變成一個有序序列。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

剪枝算法

在搜索算法中優化中,剪枝,就是通過某種判斷,避免一些不必要的遍歷過程,形象的說,就是剪去了搜索樹中的某些“枝條”,故稱剪枝。應用剪枝優化的核心問題是設計剪枝判斷方法,即確定哪些枝條應當捨棄,哪些枝條應當保留的方法。

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

另外PDF還包含了

玩轉算法必備基礎

算法的設計基礎

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

算法設計的常用思想

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

三個水桶等分八升水問題

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

妖怪與和尚過河問題

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”

最後

兩份PDF已經被小編整理好了,需要186道高階面試題算法學習資料的朋友關注、轉發,然後私信我(算法)即可免費獲取下載方式

宅家三個月吃透算法筆記,面試字節,面試官朝我比了個“ok”


分享到:


相關文章: