70. 爬楼梯
题目描述
题目分析
非常经典的dp入门题目
以前用数组来做的,今天试了一下vector
题解代码
Vector解决
class Solution {
public:
int climbStairs(int n) {
vector <long long> ans ;
ans.push_back(1);
ans.push_back(2);
for(int i =3;i <= n;i++)
ans.push_back(ans[i-2]+ans[i-3]);
return ans[n-1];
}
};
数组写法
class Solution {
public:
int climbStairs(int n) {
long long ans[50000];
ans[1]=1;ans[2]=2;
for(int i =3;i <= n;i++)
ans[i]=ans[i-1]+ans[i-2];
return ans[n];
}
};
先提交的是Vector,后提交的是数组解决,在leetcode上面差不多
746. 使用最小花费爬楼梯
题目描述
题目分析
和上面题差不多,状态转换稍微变了一下而已
题解代码
class Solution {
public:
int minCostClimbingStairs(vector<int>& vec) {
for(int i = 2;i<vec.size();i++)
vec[i] += vec[i-1] < vec[i-2] ? vec[i-1] : vec[i-2];
return vec[vec.size()-1]<vec[vec.size()-2]?vec[vec.size()-1]:vec[vec.size()-2];
}
};