70 - Climbing Stairs

794 단어
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?
Subscribe to see which companies asked this question
사고 분석:
DP 방법을 활용하면 한 계단 방법은 1회, 두 계단 방법은 2개다.n계단의 방법은 n-2단계를 올라가는 것으로 이해할 수 있고 2단계를 올라가서 마지막 단계로 바로 올라갈 수 있다.아니면 n-1계단을 올라가서 한 걸음 더 올라가세요.공식은 S[n] = S[n-1] + S[n-2] S[1] = 1 S[2] = 2
class Solution {
public:
    int climbStairs(int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        long long f[100];
        f[0] = 1;
        f[1] = 1;
        
        for(int i = 2; i < 100; i++)
            f[i] = f[i-1] + f[i-2];
            
        return f[n]; 
    }
};

좋은 웹페이지 즐겨찾기