class Solution {
public:
int jump(vector<int>& nums) {
int distance = 0;
int step = 0;
int t, tmp=0,i=0;
int n = nums.size();
while ( i < n ) {
//记录前一个点的每个点到达的最远点,更新保存
int last = nums[i] + i;
if (nums[tmp] == 0||n==1)
{
return 0;
}
distance = max(nums[i] + i, distance);
if (last>=n-1)
{
++step;
return step;
}
else ++step ;
for (t = i; t <= last; ++t)
{
int tmax = nums[t] + t;
if (tmax >= distance) tmp = t;
distance = max(nums[t] + t, distance);
}
i = tmp;
}
return step;
}
};
leetcode 55 jump game
最新推荐文章于 2020-09-24 00:05:07 发布