LeetCode——70. 爬樓梯
題目
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個正整數。
示例 1:
輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階
示例 2:
輸入: 3 輸出: 3 解釋: 有三種方法可以爬到樓頂。 1. 1 階 + 1 階 + 1 階 2. 1 階 + 2 階 3. 2 階 + 1 階
解題思路
經過分析n的方法數 = n-1的方法數 加 n-2的方法數,因此只要用一個數組ways來存放n-1和n-2的方法數即可。
程式碼實現
class Solution { public int climbStairs(int n) { int[] ways = {1,1}; //ways[0]存 n - 2 階的走法數,ways[1]儲存 n - 1 階走法數 for (int i = 1 ; i < n; i++) { int temps = 0; temps = ways[1]; ways[1] = ways[0] + ways[1]; ways[0] = temps; } return ways[1]; } }
相關推薦
[leetcode] 70. 爬樓梯
ble i++ 條件 == ++ 爬樓梯 樓梯 for script 70. 爬樓梯 最簡單的動態規劃 假設f[i]表示爬到第i層有幾種爬法 那麽狀態轉移方程為:f[i] = f[i-1] + f[i-2] 初始條件顯然是:f[1]=1,f[2] = 2; class So
leetcode 70. 爬樓梯【遞迴】【Easy】&& 劍指Offer面試題10 題目2:青蛙跳臺階問題
題目: 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1
LeetCode 70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階
leetcode 70. 爬樓梯 C語言版
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1
leetcode.70.爬樓梯
爬樓梯,一開始想的比較簡單,想著暴力解決。 後來看評論發現是斐波那契數列,就想著用遞迴,竟然超時了。 網上查了一下,發現用陣列求斐波那契數列用時比較少,把程式碼抄在這。 class Solution { public int climbStairs(int n)
leetcode 70:爬樓梯
本來打算用遞迴的方式來做,但是超出時間限制,發現直接用陣列代替就好了 a[n-1]=a[n-2]+a[n-3]; int climbStairs(int n) { std::vector<int> a(n); if(n==1) { retu
Leetcode 70. 爬樓梯 Java
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階
leetcode 70. 爬樓梯問題(多種方法總結)
爬樓梯問題有多種出現形式,有不固定最多可跨階數(即最多可跨階數為M,M作為方法引數)的,有固定每次最多可跨2階的。接下來,我就對以上兩種出線形勢分別進行分析。 (一)固定每次最多跨越2階,使用非遞迴方式實現: 1、問題描述: 假設你正在爬樓梯。需要 n 階你才能到達
leetcode 70. 爬樓梯【遞迴】【Easy】&& 劍指Offer面試題10 題目2:青蛙跳臺階問題
題目: 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2.
leetcode 70-爬樓梯 python
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階
leetcode 70. 爬樓梯
題目描述: 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 思路: 之前看斐波那契數列相關東西時,聽說過這個...所以瞬間想到。第n階臺階,要麼是從n-1階跨一步上來的,要麼是從n-2階跨兩步上來
LeetCode——70. 爬樓梯
題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2
LeetCode-70. 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋:
【LeetCode】 70. 爬樓梯--簡單遞迴的應用
簡單遞迴 C++ 通過找規律發現後面數字等於前面兩項之和 於是通過簡單遞迴寫出程式如下 #include <iostream> using namespace std; int ds(int n){ if(n==0) return 0; else if (n=
leetcode的python實現 刷題筆記70:爬樓梯(動態規劃)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1
【LeetCode】70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1 階 + 1 階 2 階 示例 2: 輸入: 3 輸出: 3
【Leetcode】70. 爬樓梯
題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2
【Leetcode】 70. 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解
LeetCode題庫解答與分析——#70. 爬樓梯ClimbingStairs
#70. 爬樓梯 Climbing Stairs你正在爬樓梯。需要 n 步你才能到達頂部。每次你可以爬 1 或 2 個臺階。你有多少種不同的方式可以爬到樓頂呢?You are climbing a stair case. It takes n steps to reach t
【LeetCode】70. 爬樓梯——dp
題目 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i] (索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選