91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS面試中常見的算法題有哪些

發布時間:2022-03-03 16:11:52 來源:億速云 閱讀:114 作者:iii 欄目:web開發

這篇文章主要講解了“JS面試中常見的算法題有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JS面試中常見的算法題有哪些”吧!

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

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

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

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

function isPrime(num){

 if (num === 2 || num === 3) {

 return true;

 };

 if (num % 2 === 0) {

 return false;

 };

 let divisor = 3,limit = Math.sqrt(num);

 while(limit >= divisor){

 if (num % divisor === 0) {

 return false;

 }

 else {

 divisor += 2;

 }

 }

 return true;

}

console.log(isPrime(30)); // false

2.斐波那契

最簡單的做法:遞歸。

function fibonacci(n){

 if (n <= 0) {

 return 0;

 }

 if (n == 0) {

 return 1;

 }

 return fibonacci(n-1) + fibonacci(n-2);

}

但是遞歸會有嚴重的效率問題。比如想要求得f(10),首先需要求f(9)和f(8)。同樣,想求f(9),首先需要f(8)和f(7)&hellip;這樣就有很多重復值,計算量也很大。

我自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定制課程,今年年初我花了一個月整理了一份最適合2019年學習的web前端學習干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以在后臺私信我:前端,即可免費獲取。

改進:從下往上計算,首先根據f(0)和f(1)計算出f(2),再根據f(1)和f(2)計算出f(3)&hellip;&hellip;以此類推就可以計算出第n項。時間復雜度O(n)。

function fibonacci(n){

 let ori = [0,1];

 if (n < 2) {

 return ori[n];

 };

 let fiboOne = 1,fiboTwo = 0,fiboSum = 0;

 for (let i = 2; i <= n; i++) {

 fiboSum = fiboOne + fiboTwo;

 fiboTwo = fiboOne;

 fiboOne = fiboSum;

 }

 return fiboSum;

}

console.log(fibonacci(5));

3、求最大公約數

除數 在a和b的范圍內,如果同時a和b處以除數的余等于0,就將此時的除數賦值給res;除數自增,不斷循環上面的計算,更新res。

function greatestCommonDivisor(a, b){

 let divisor = 2,res = 1;

 if (a < 2 || b < 2) {

 return 1;

 };

 while(a >= divisor && b >= divisor){

 if (a%divisor === 0 && b%divisor === 0) {

 res = divisor;

 }

 divisor++;

 }

 return res;

};

console.log(greatestCommonDivisor(8, 4)); // 4

console.log(greatestCommonDivisor(69, 169)); // 1

解法2:

function greatestCommonDivisor(a,b){

 if (b === 0) {

 return a;

 } else {

 return greatestCommonDivisor(b,a%b);

 }

};

4、數組去重

對原數組進行遍歷

獲取arr[i]的值 j;

對應到輔助數組 exits 的位置 j 的值,如果沒有,則證明arr[i] 的值沒有重復,

此時將 值j 存入res數組,并將輔助數組 j 位置的值置為 true。

最后返回res數組。

感謝各位的閱讀,以上就是“JS面試中常見的算法題有哪些”的內容了,經過本文的學習后,相信大家對JS面試中常見的算法題有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

阜阳市| 达州市| 丰城市| 宁明县| 固始县| 安溪县| 略阳县| 潮安县| 巴里| 瑞丽市| 邳州市| 彩票| 泌阳县| 论坛| 东莞市| 维西| 宁晋县| 淅川县| 舞钢市| 万宁市| 临桂县| 宜城市| 绩溪县| 上栗县| 靖宇县| 葫芦岛市| 南京市| 仙居县| 绍兴市| 望都县| 肃南| 甘洛县| 四会市| 普兰店市| 城固县| 罗田县| 和平区| 沙坪坝区| 铁力市| 扶风县| 淄博市|