2020年5月11日 星期一

[LeetCode] 70. Climbing Stairs* 解題思路 (Easy)



這題需要算出該數字有幾組爬樓梯的方案。




LeetCode 題目連結

 

https://leetcode.com/problems/climbing-stairs/

 

題目


You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Note: Given n will be a positive integer.
Example 1:
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps
Example 2:
Input: 3
Output: 3
Explanation: There are three ways to climb to the top.
1. 1 step + 1 step + 1 step
2. 1 step + 2 steps
3. 2 steps + 1 step

Accept 作法


這題時間複雜度為 O(n)。


Runtime: 0 ms
Memory: 37.8 MB

Java 程式碼

class Solution {
    public int climbStairs(int n) {
       if(n == 1)
           return 1;
        int[] dp = new int[n+1];
        dp[1] = 1;
        dp[2] = 2;
        
        for(int i =3; i<=n ;i++){
            dp[i] = dp[i - 1]+ dp[i-2];
        }
        return dp[n];
    }
    
}

 

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。


書名:提升程式設計師的面試力:189道面試題目與解答



相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。


沒有留言:

張貼留言