c++
class Solution { public: #define mod 1000000007; int f[110]; int numWays(int n) { f[0] = f[1] =1; for(int i = 2; i <= n; ++i ) { f[i] = (f[i-1] + f[i-2] )% mod; } return f[n]; } };
c++
class Solution { public: int f[110]; int climbStairs(int n) { f[0] = f[1] = 1; for(int i = 2;i <= n; i++) { f[i] = f[i-1] + f[i-2]; } return f[n]; } };
c++
class Solution { public: #define maxn 1000001 int f[maxn]; int numberOfSteps(int num) { f[0] = 0; for(int i = 1;i <= num;++i) { if(i % 2 ==1) { f[i] = f[i-1] + 1; } else { f[i] = f[i/2] + 1; } } return f[num]; } };
c++
class Solution { public: #define maxn 1024 int f[maxn]; int minCostClimbingStairs(vector& cost) { f[0] = f[1] = 0; for(int i = 2; i <= cost.size();i++) { f[i] = min((f[i-1]+cost[i-1]),(f[i-2]+cost[i-2])); } return f[cost.size()]; } };
c++
class Solution { public: #define maxn 1024 int f[maxn]; int minCostClimbingStairs(vector& cost) { f[0] = f[1] = 0; int n = cost.size(); for(int i = 2;i <= n;++i) { f[i] = min((f[i-1]+cost[i-1]),(f[i-2]+cost[i-2])); } return f[n]; } };