摘要:前言本系列總結(jié)了在前端面試中可能遇到的若干算法題,不定期更新最近看有同學(xué)面試遇到了階{{BANNED}}跳問題級臺階,每次最多允許跨步,求多少種跨越方式,下面是一個變種問題題目假設(shè)有級臺階,每次最多允許跨步,那么有多少種跨越方式思路采用自頂向下的思考方式
前言:本系列總結(jié)了在前端面試中可能遇到的若干算法題,不定期更新
最近看有同學(xué)面試遇到了n階{{BANNED}}跳問題(n級臺階,每次最多允許跨n步,求多少種跨越方式),下面是一個變種問題
題目:假設(shè)有n級臺階,每次最多允許跨m步(m<=n),那么有多少種跨越方式? 思路:采用自頂向下的思考方式f(n,m) = f(n-1,m)+f(n-2,m)+...+f(n-m,m)
當(dāng)m=2時,這就是一個斐波那契數(shù)列。
同時,對于n階{{BANNED}}跳,即n=m時,用公式有以下特點(diǎn):
f(n) = f(n-1)+f(n-2)+...+f(1);//①
f(n-1) = f(n-2)+f(n-3)+...+f(1);//②
①-② 即f(n) = 2f(n-1),可以看出n階{{BANNED}}跳的結(jié)果,實(shí)際是一個等比數(shù)列,也就是f(n) = 2^(n-1)
function f(n,m) { var count = 0; if (n == 0) { return 1; } if (n >= m) { for (var i=1; i<=m; i++) { count += f(n-i,m); } }else { count += f(n,n); } return count; }解法2:非遞歸算法
//首先根據(jù)規(guī)律,存儲前m項(xiàng)結(jié)果,當(dāng)n深度遍歷js對象的屬性名 題目:給定若干嵌套項(xiàng)的js對象,如下a+b)) } return arr.pop(); }
//輸入對象 var obj = { a: { b: { c: { d:"h", j:"l", o: { p:"q", r:"s" }, t: "u" } }, v: { w: { x: { y: "z" } } } }, e: { f: { i: "k" }, m: "n" } } //輸出結(jié)果,按照層數(shù),把同一層的屬性放在同一個子數(shù)組內(nèi) var result = [[a,e],[b,v,f,m],[c,w,i],[d,j,o,t,x],[p,r,y]];解題思路:按照深度遍歷所有屬性即可,注意對每一層做標(biāo)記
//輸出結(jié)果數(shù)組 var result = []; //遞歸層數(shù),也就是屬性層數(shù) var num = 0; function getProp(obj) { //獲取對象的屬性數(shù)組 var keys = Object.keys(obj); var len = keys.length; for(var i=0; i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84623.html
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:插件開發(fā)前端掘金作者原文地址譯者插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡單的方式。提供了與使用掌控異步前端掘金教你使用在行代碼內(nèi)優(yōu)雅的實(shí)現(xiàn)文件分片斷點(diǎn)續(xù)傳。 Vue.js 插件開發(fā) - 前端 - 掘金作者:Joshua Bemenderfer原文地址: creating-custom-plugins譯者:jeneser Vue.js插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡單的方式。插....
摘要:實(shí)現(xiàn)不定期更新技巧前端掘金技巧,偶爾更新。統(tǒng)一播放效果實(shí)現(xiàn)打字效果動畫前端掘金前端開源項(xiàng)目周報前端掘金由出品的前端開源項(xiàng)目周報第四期來啦。 Web 推送技術(shù) - 掘金騰訊云技術(shù)社區(qū)-掘金主頁持續(xù)為大家呈現(xiàn)云計(jì)算技術(shù)文章,歡迎大家關(guān)注! 作者:villainthr 摘自 前端小吉米 伴隨著今年 Google I/O 大會的召開,一個很火的概念--Progressive Web Apps ...
閱讀 2155·2021-10-08 10:15
閱讀 1185·2019-08-30 15:52
閱讀 514·2019-08-30 12:54
閱讀 1531·2019-08-29 15:10
閱讀 2682·2019-08-29 12:44
閱讀 3008·2019-08-29 12:28
閱讀 3348·2019-08-27 10:57
閱讀 2212·2019-08-26 12:24