class Solution {
public:
int jump(vector<int>& nums) {
//因为生成的数据是可以跳跃到最后的n - 1 的位置
//这道题还是需要记录步数,不过因为数据是合理的所以不太需要像之前的题需要判断是否可达
/* n^2 时间,勉强过,敲
vector<int> step(nums.size(), INT_MAX);
step[0] = 0;
if (nums.size() == 1) return 0;
for (int i = 0; i < nums.size() - 1; ++i) {
for (int j = i + 1; j <= nums.size() - 1 && j <= i + nums[i];++j) {
step[j] = min(step[i] + 1,step[j]);
}
}
for (int i = 0; i < nums.size() - 1; ++i) {
if (i + nums[i] >= nums.size() - 1) return step[i] + 1;
}
return 0;
**/
//仔细分析一下,似乎可以不用再来一个循环确定最小步数
}
};
Leetcode 45. 跳跃游戏 II
最新推荐文章于 2024-08-17 23:59:05 发布