走台階版本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)
或者採用斐波那契數列通項公式直接計算: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,...