昨天聊了乙個演算法題,今天接著聊!多聊幾個。
1、拍平陣列(多維陣列變成一維陣列)
let arr = [1,[2,3,[4],[5,6,[7]]],8]//[1,2,3,4,5,6,7,8]
//這個有很多方法,我們一一說來
//第一種遍歷陣列,遍歷過程遇到陣列遞迴。
function flatten(arr, newarr)
return newarr
}console.log(flatten(arr))
//第二種,邏輯一樣只不過遍歷換成了reduce,如果讀的比較困難請移步: 了解reduce
function flatten1(arr) , )
}console.log(flatten1(arr))
//第三種比較簡單
function flatten2(arr)
console.log(flatten2(arr))
//第三種稍有點問題,如果陣列內是number型別會拍平後會變成字串。
2、寫乙個方法判斷字串內()是否成對出現,是返回true不是返回false
let str = '(()()())'
let str1 = '(())()())'
//1、先用棧的思路解決
function isture(str, result = ) else if (item === ')' && result.length != 0) else
}return result ? true : false
}console.log(isture(str)) //true
console.log(isture(str1)) //false
2、用計數方式其實和棧原理類似
function isture1(str, count = 0) else if (item === ')' && count != 0) else
}return !count ? true : false
}console.log(isture1(str))//true
console.log(isture1(str1))//false
ok 今天分享就到這,明天繼續! 前端面試演算法
演算法一般考得不難,不過基本每一次面試都會考到,常考的演算法有 排序演算法 詳見排序演算法解析 字串中找出最長最多重複的子串 js實現 字串中最長最多重複的子串 動態規劃,參見揹包問題 js實現動態規劃例項 層次遍歷二叉樹 遍歷二叉樹方法 加油站問題 貪心演算法 js實現加油貪心演算法 二分法 js...
前端面試中常見的演算法問題總結
雖說我們很多時候前端很少有機會接觸到演算法。大多都互動性的操作,然而從各大公司面試來看,演算法依舊是考察的一方面。實際上學習資料結構與演算法對於工程師去理解和分析問題都是有幫助的。如果將來當我們面對較為複雜的問題,這些基礎知識的積累可以幫助我們更好的優化解決思路。下面羅列在前端面試中經常撞見的幾個問...
前端面試中的常見的演算法問題
雖說我們很多時候前端很少有機會接觸到演算法。大多都互動性的操作,然而從各大公司面試來看,演算法依舊是考察的一方面。實際上學習資料結構與演算法對於工程師去理解和分析問題都是有幫助的。如果將來當我們面對較為複雜的問題,這些基礎知識的積累可以幫助我們更好的優化解決思路。下面羅列在前端面試中經常撞見的幾個問...