跳跃游戏 II - C++力扣45题
题目链接:https://leetcode.com/problems/jump-game-ii/description/
解题思路
这题算是中等难度吧,就是一眼能看出来解决方法的程度,但是优化上还是得多费一点脑子,下面的代码也不是最优解。基本上是一眼能看出来用 DP 就能把这题解决,这里就是套了一个 DP 模板,但很明显 DP 不是最优解,可以考虑看看贪心算法。
完整代码:
class Solution {
public:
int jump(vector<int>& nums) {
vector<int> dp(nums.size(), INT_MAX);
dp[0] = 0;
for(int i = 0; i < nums.size(); i++) {
for(int j = 1; j <= nums[i]; j++) {
if(i + j >= nums.size()) break;
dp[i + j] = min(dp[i + j], dp[i] + 1);
}
}
return dp[nums.size() - 1];
}
};
版权属于:江筱雨
本文链接:https://www.yuisblog.com/archives/232/
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!