跳跃游戏
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701152050455.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9ob3V0YW8=,size_16,color_FFFFFF,t_70)
class Solution {
public:
int jump(vector<int>& nums) {
//总是可以到达数组的最后一个位置
//贪心算法的规律
vector<int> index;
int len = nums.size();
if (len == 1)
return 0;
for (int i = 0; i<len; ++i)
{
index.push_back(i + nums[i]);//更新数组中每个点能跳到最远的地方
}
int bianli=0;
int zuixiao=1;
int pre_max_index=index[0];
int cur_max_index=index[0];
//循环结束条件,有待考虑
/*
while(cur_max_index<(len-1) )
{
//遍历出界了,需要把以前的最大的跳跃边界更新过来
if(bianli>cur_max_index)
{
++zuixiao;
cur_max_index=pre_max_index;
}
//更新所能跳跃的最大位置
if(index[bianli]>pre_max_index)
pre_max_index=index[bianli];
++bianli;
}*/
for(int i=0;i<len;++i)
{
if(i>cur_max_index)
{
++zuixiao;
cur_max_index=pre_max_index;
}
if(pre_max_index<index[i])
pre_max_index=index[i];
}
return zuixiao;
}
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190701152129869.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW9ob3V0YW8=,size_16,color_FFFFFF,t_70)