1. 程式人生 > >LeetCode——70. 爬樓梯

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 解釋:

LeetCode70. 樓梯--簡單遞迴的應用

簡單遞迴 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

LeetCode70 樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1 階 + 1 階 2 階 示例 2: 輸入: 3 輸出: 3

Leetcode70. 樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2

Leetcode70. 樓梯

假設你正在爬樓梯。需要 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

LeetCode70. 樓梯——dp

題目 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i] (索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選