程式設計師面試 走台階問題

2021-07-01 23:18:01 字數 586 閱讀 3080

走台階版本1:

題目:乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。

源自遞迴:f(n)=f(n-1)+f(n-2)

其中f(0)=f(1)=1;

對最後一步分情況討論:

走一步為f(n-1)種方法,走兩步為f(n-2)種方法。

演算法複雜度:o(n)

或者採用斐波那契數列通項公式直接計算:f(n)=(√5/5)*

走台階版本2:

題目:乙個台階總共有n級,如果一次可以跳1-n級。求總共有多少總跳法,並分析演算法的時間複雜度。

遞迴:f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)=2*f(n-1)=2^(n-1)

對最後一步分情況討論:

最後一步走i個台階有f(n-i)種方法,所以

(1)f(n)=f(n-1)+f(n-2)+...+f(1)+f(0)

(2)f(n-1)=f(n-2)+f(n-3)+...+f(1)+f(0)

(1)-(2)得f(n)=2*f(n-1)

有因為f(1)=1, 所以f(n)=2^(n-1)

演算法複雜度:o(1)

程式設計師面試 走台階問題

走台階版本1 題目 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。源自遞迴 f n f n 1 f n 2 其中f 0 f 1 1 對最後一步分情況討論 走一步為f n 1 種方法,走兩步為f n 2 種方法。演算法複雜度 o n 或者採用斐波那...

程式設計師面試 走台階問題

走台階版本1 題目 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。源自遞迴 f n f n 1 f n 2 其中f 0 f 1 1 對最後一步分情況討論 走一步為f n 1 種方法,走兩步為f n 2 種方法。演算法複雜度 o n 或者採用斐波那...

走台階問題

舉個例子,假設有3個台階,則有三種走法 分別是,1 1 1,1 2,2 1。很簡單的一道題,學過組合數學的人很快就能想到,這是乙個遞推關係。假設走完k個台階有f k 種走法。於是有如下公式 上面只給出了有多少種走法,那麼具體每一種走法是怎麼走的呢?比如n 4時,五種走法分別如下 1,1,1,1 1,...