iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
生成式 AI

Chatting with ChatGPT——一天學習一題Leetcode系列 第 11

終於11天了-70. Climbing Stairs

  • 分享至 

  • xImage
  •  

終於過了10天了!!!好開心我居然沒有忘記

今天的題目大意:有一個樓梯共有 n 階,你每步可以爬 1 階或 2 階,問有多少種不同的爬法到第 n 階?
(換句話說:求第 n 個 Fibonacci-like 數:f(n) = f(n-1) + f(n-2),base: f(0)=1、f(1)=1 或常見寫法 f(1)=1, f(2)=2。)

class Solution {
    public int climbStairs(int n) {
        if (n <= 1) return 1;   // 0 或 1 階只有一種方法
        int a = 1; // f(0) 或前一個狀態
        int b = 1; // f(1) 或目前狀態
        for (int i = 2; i <= n; i++) {
            int next = a + b; // f(i) = f(i-1) + f(i-2)
            a = b;            // 向前移動:新的 f(i-2) = 原本 f(i-1)
            b = next;         // 新的 f(i-1) = f(i)
        }
        return b; // b 現在是 f(n)
    }
}

上一篇
進度三分之一了!-LeetCode 35. Search Insert Position
下一篇
美好星期五-66. Plus One
系列文
Chatting with ChatGPT——一天學習一題Leetcode12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言