Cho cầu thang có bậc. Mỗi bước, bạn có thể trèo hoặc bậc một lúc.
Hỏi, có bao nhiêu cách để lên được bậc thứ (bạn đang ở mặt đất, có thể coi là bậc ).
Độ phức tạp dự tính:
Để tính được số cách đi đến bậc , ta có thể suy ra theo bước trước đó (trèo 1 hay 2 bước):
Số cách đi đến bậc = số cách đi đến bậc + số cách đi đến bậc .
Công thức đã có: gọi là số cách trèo lên bậc thứ . Ta có .
Ta xét base case cho các bé:
Các lớn hơn tính theo công thức đã cho.
Thời gian: .
Bộ nhớ mở rộng: .
Code mẫu: https://leetcode.com/problems/climbing-stairs/submissions/1149328139/
Bài tập này có pattern tính toán giống với dãy Fibonacci. Dưới đây là một số bài tập gợi ý liên quan:
1137. N-th Tribonacci Number
2244. Minimum Rounds to Complete All Tasks
2320. Count Number of Ways to Place Houses