NeetCode 150 / 1-D Dynamic Programming
Easy1-D Dynamic ProgrammingO(n)
ভিডিওতে দেখো — YouTube @algonur_com

কোড

Python
def climbStairs(n: int) -> int:
    if n <= 2:
        return n
    prev2, prev1 = 1, 2
    for _ in range(3, n + 1):
        prev2, prev1 = prev1, prev2 + prev1
    return prev1
Java
public int climbStairs(int n) {
    if (n <= 2) return n;
    int prev2 = 1, prev1 = 2;
    for (int i = 3; i <= n; i++) {
        int cur = prev1 + prev2;
        prev2 = prev1;
        prev1 = cur;
    }
    return prev1;
}
Kotlin
fun climbStairs(n: Int): Int {
    if (n <= 2) return n
    var prev2 = 1; var prev1 = 2
    for (i in 3..n) {
        val cur = prev1 + prev2
        prev2 = prev1; prev1 = cur
    }
    return prev1
}
C++
int climbStairs(int n) {
    if (n <= 2) return n;
    int p2 = 1, p1 = 2;
    for (int i = 3; i <= n; i++) {
        int cur = p1 + p2;
        p2 = p1; p1 = cur;
    }
    return p1;
}

জটিলতা

O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(1)
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← Cheapest Flights Within K Stopsপরের সমস্যাMin Cost Climbing Stairs →