题目
给定一个长度为 n
的 0 索引整数数组 nums
。初始位置为 nums[0]
。
每个元素 nums[i]
表示从索引 i
向前跳转的最大长度。换句话说,如果你在 nums[i]
处,你可以跳转到任意 nums[i + j]
处:
-
0 <= j <= nums[i]
i + j < n
返回到达 nums[n - 1]
的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]
。
示例 1:
输入: nums = [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是2
。 从下标为 0 跳到下标为 1 的位置,跳1
步,然后跳3
步到达数组的最后一个位置。
示例 2:
输入: nums = [2,3,0,1,4] 输出: 2
提示:文章来源:https://www.toymoban.com/news/detail-690942.html
1 <= nums.length <= 104
0 <= nums[i] <= 1000
- 题目保证可以到达
nums[n-1]
代码
#include<stdio.h>
int jump(int* nums, int numsSize);
int main()
{
int nums[5] = {2,3,1,1,4};
printf("%d",jump(nums,5));
return 0;
}
int jump(int* nums, int numsSize)
{
if(numsSize==1||nums[0]==0)
return 0;
int max=0;
int number=0;
for(int i=0;i<numsSize-1;i++)
{
if(nums[i]>max)
{
max=nums[i];
}
}
int temp=numsSize-1;
while(temp>0)
{
int posi;
int i;
for(i=temp-1;i>=0&&i>=temp-max;i--)
{
if(nums[i]+i>=temp)
{
posi=i;
}
}
temp=posi;
number++;
}
return number;
}
文章来源地址https://www.toymoban.com/news/detail-690942.html
到了这里,关于LeetCode 45题:跳跃游戏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!