19道常見的JS面試演算法題

2022-06-10 03:18:11 字數 1357 閱讀 9199

最近秋招也做了多多少少的面試題,發現除了基礎知識外,演算法還是挺重要的。特意整理了一些常見的演算法題,新增了自己的理解並實現。

除此之外,建議大家還可以刷刷《劍指offer》。此外,左神在牛客網上也有演算法課程,聽了基礎班的感覺還不錯,起碼讓我這個演算法小白也能快速地理解了很多問題,知識付費的時代,這個真的是良心課程了。就我個人而言的話,平時為了解決乙個演算法問題,需要花很多時間去看帖子、看講解,但很難真正轉化為自己的思想(主要問題就是沒有動手練),大家可以根據自己的需求,進行演算法的學習。

1.驗證乙個數是否是素數

2.斐波那契

3.求最大公約數

4.陣列去重

5.刪除重複的字元

6.排序兩個已經排好序的陣列

7.字串反向

8.字串原位反轉

9.判斷是否是回文

10.判斷陣列中是否有兩數之和

11.連字元轉成駝峰

12.加油站問題-貪心演算法

13.用正則實現trim() 清除字串兩端空格

14.島問題:判斷有幾個島

15.將數字12345678轉化成rmb形式:12,345,678

16.刪除相鄰相同的字串

17.宣講會安排

18.漢諾塔問題

19.母牛生母牛問題

1.驗證乙個數是否是素數

如果這個數是 2 或 3,一定是素數;

如果是偶數,一定不是素數;

如果這個數不能被3~它的平方根中的任一數整除,m必定是素數。而且除數可以每次遞增2(排除偶數)

function isprime(num) else ;

for(let i = 0; i < arr.length; i++),,,

,,,,

console.log("最大場次:" + getmostcount(obj));

18.漢諾塔問題

把a桿上的金盤全部移到c桿上,並仍保持原有順序疊好。操作規則:每次只能移動乙個盤子,並且在移動過程中三根桿上都始終保持**在下,小盤在上,操作過程中盤子可以置於a、b、c任一桿上。

思路:遞迴解決:把問題轉化為規模縮小了的同類問題的子問題;

明確遞迴結束的條件(base case):n == 1

function hanoiprocess(n,from,to,help) else else{

count = n;

return count;

let n = 7;

console.log(n + " 年後,牛的數量是: " + cow(n))

// 7 年後,牛的數量是: 13

如果有更好的解法,感謝大佬賜教!我的解法太普通了,有時間再改進下。

演算法問題先寫到這,如果還有更多的面試題,也可以和我交流交流,相互學習呀!

四道微軟面試演算法題

1 乙個整數數列,元素取值可能是0 65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。注意 5個數值允許是亂序的。比如 8 7 5 0 6 0可以通配任意數值。比如 8 7 5 0 6 中的0可以通配...

四道微軟面試演算法題

朋友去ms面試,我從他口裡探到幾道程式設計面試題。特來和各位分享。1 乙個整數數列,元素取值可能是0 65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。注意 5個數值允許是亂序的。比如 8 7 5 0...

兩道面試演算法題

最近面試 兩道演算法題 說難不難 要寫全對也不容易 很慚愧 我沒有一次寫對 第一道 無序int陣列 找到中位數 void swap int a,int b int get kth number vector num,int k,int start,int end 一次劃分結束 index i if ...