/*主要思路是声明两个变量遍历数组
maxPos维护本次跳跃最远可以跳跃的位置
right维护右边界,在本次跳跃以后去更新下次跳跃的右边界
需要注意下i=0时的跳跃,比较特殊,第一次result++时,主要是初始化
*/
class Solution {
public:
int jump(vector<int>& nums) {
int result = 0;//返回值
int maxPos = 0;//每跳一次最远可以跳的位置
int right = 0;//上次跳跃的右边界(同时也是下次起跳点)
for(int i =0;i<nums.size()-1;i++)
{
maxPos = max(maxPos,i+nums[i]);
if(i == right)
{
result++;
right = maxPos;
}
}
return result;
}
};
力扣45跳跃游戏2c++实现
最新推荐文章于 2024-09-24 08:39:28 发布