爬樓梯問題演算法
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
首先分析這道題
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int climbStairs(int n) { if (n == 1 || n == 2 ) { return n; } int n1 = 1; int n2 = 2; int add = 0; for (int i = 3; i <=n; ++i) { add = n1 + n2; n1 = n2; n2 = add; } return add; } int main() { int x = 0; scanf("%d", &x); printf("%d", climbStairs(x)); }
相關推薦
爬樓梯演算法問題分析(不止三步)
演算法分析: 階梯數為1,爬樓梯方法就一種,為1,f(1)=1;階梯數大於1的時候,遞迴求解:階梯數為2的時候,最多兩種方式上樓:1 ,1;2 => f(2)=2;爬三層樓梯的時候,爬1層,再爬兩層,則是爬三層樓梯由爬一層樓梯和爬兩層樓梯的情況的結合:f(3)=f
演算法之爬樓梯
題目:假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 沙雕解法一:利用遞迴,就是最後一步一定是前一步走一步或倒退兩步走兩步,超時! #include "pch.h" #include <iostream&
演算法筆記-遞迴之爬樓梯問題
問題描述: 熊孩子Davis家有一個樓梯,這個樓梯總有n級臺階,Davis每次只能爬1、2或者3階,他有幾種不同的爬法? Sample: ***** Input: ***** 3 ***** Output: ***** 4 ***** In
爬樓梯問題演算法
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 首先分析這道題 #define
[leetcode]python3 演算法攻略-爬樓梯
假設你正在爬樓梯。需要 n 步你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 方案一:每一步都是前兩步和前一步的和 class Solution(object): def climbSt
【LeetCode-面試演算法經典-Java實現】【073-Climbing Stairs(爬樓梯)】
原題 You are climbing a stair case. It takes n steps to reach to the top. Each time you c
面試演算法題:爬樓梯,N級樓梯有多少種走法?
By Long Luo 最近去面試時,在一家小公司面試時,公司小BOSS給我出了一道演算法題: 一個人爬樓梯,一步可以邁一級,二級,三級臺階,如果樓梯有N級,要求編寫程式,求總共有多少種走法。 這個問題應該是一個很老的題目了,用中學數學來說,就是一個
演算法之動態規劃(爬樓梯)
動態規劃的概念 通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃常常適用於有重疊子問題和最優子結構性質的問題。 動態規劃的基本思想 若要解一個給定問題,我們需要解其不同部分(即子問題),再合併子問題的解以得出原問題的解。 通常許多子
一步一步寫演算法(之爬樓梯)
【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 前兩天上網的時候看到一個特別有意思的題目,在這裡和朋友們分享一下: 有一個人準備開始爬樓梯,假設樓梯有n個,這個人只允許一次爬一個樓梯或者一次爬兩個樓
LeetCode(初級演算法)動態規劃篇---爬樓梯
題目 假設你正在爬樓梯。需要 n 步你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 步 +
一道爬樓梯的演算法題
題目:一個人需要上樓梯,每次他只能上1,2或者3節臺階一共有18節臺階,問此人有多少種方法走上樓梯? 解:此題是遞迴題,f(18)=f(17)+f(16)+f(15); 解析:假設只有一節臺階 有1種方法可以上去,2節臺階時有2種,3節時有4種方法,按照上述歸納f(4)
演算法:爬樓梯問題分析--動態規劃
題目 假設你現在正在爬樓梯,樓梯有 n 級。每次你只能爬 1級或者 2級,那麼你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1≤n≤50),代表樓梯的級數。 輸出格式 輸出爬到樓梯頂部的方法總數。 形如: 樣例輸入 5 樣例輸出 8 刨
演算法分析與設計C++ 2:遞迴:爬樓梯
例如:樓梯一共有3級,他可以每次都走一級,或者第一次走一級,第二次走兩級;也可以第一次走兩級,第二次走一級,一共3種方法。 輸入 輸入包含若干行正整數,第一行正整數K代表資料組數;後面K行,每行包含一個正整數N,代表樓梯級數,1 <= N <= 30 輸出 不同的走法數,每一行輸入對應一行輸出
爬樓梯
turn cnblogs blog pub -- -o urn strong public 代碼(C++): class Solution {public: /** * @param n: An integer * @return: An intege
計蒜客--爬樓梯 (動態規劃)
tle nbsp vector main long 3.1 false n) 方法 假設你現在正在爬樓梯,樓梯有 nn 級。每次你只能爬 11 級或者 22 級,那麽你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1\leq n \leq 50)n
(遞歸)3089:爬樓梯
std 需要 12px blog -1 while 語言 %d 包含 描述 樹老師爬樓梯,他可以每次走1級或者2級,輸入樓梯的級數,求不同的走法數例如:樓梯一共有3級,他可以每次都走一級,或者第一次走一級,第二次走兩級也可以第一次走兩級,第二次走一級,一共3種方法。 輸入
[LeetCode] Min Cost Climbing Stairs 爬樓梯的最小損失
int rom fin [1] case pin cos heap tput On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once
LintCode 111. 爬樓梯
爬樓梯 bst ntc color class str ane ger 不同 假設你正在爬樓梯,需要n步你才能到達頂部。但每次你只能爬一步或者兩步,你能有多少種不同的方法爬到樓頂部? 樣例 比如n=3,1+1+1=1+2=2+1=3,共有3種不同的方法 返回 3 c
爬樓梯 · Climbing Stairs
number 分鐘 數據 其他 結構 time 代碼風格 方法 clas [抄題]: 假設你正在爬樓梯,需要n步你才能到達頂部。但每次你只能爬一步或者兩步,你能有多少種不同的方法爬到樓頂部? [思維問題]: 不知道一步、兩步怎麽加。還是用iteration叠代。此題公式可
[LeetCode] 70. Climbing Stairs 爬樓梯
code pytho recursion tin ram pub time stair lee You are climbing a stair case. It takes n steps to reach to the top. Each time you can ei