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];
}
};



