LEETCODE 55. Jump Game
2017-04-07 15:41
417 查看
LEETCODE 55. Jump Game
贪心算法题目要求
给出一个非负整数数组,每个元素代表在当前位置能往前跳的最大步数,判断能否跳到这个数组的最后。用一个例子理解:
A = [2,3,1,1,4], return true.
元素 | 2 | 3 | 1 | 1 | 4 |
---|---|---|---|---|---|
index | 0 | 1 | 2 | 3 | 4 |
解题思路
每次迭代根据当前迭代的左界和右界,计算得到下一次迭代的右界,下一次的左界就是当前迭代的右界,只要计算得到右界是大于数组长度的就可以停止迭代,这时说明已经找到可以跳到数组最后的方案了,返回true;或者下一次迭代的右界并没有在当前迭代右界的右边,说明这时已经跳到了可以到达的最远处,而且小于数组长度,说明无法跳到数组最后,返回fase。代码
class Solution { public: bool canJump(vector<int>& nums) { int endInd = int(nums.size()), leftInd = 0, rightInd = 1; while (rightInd < endInd) { int newRightInd = rightInd; for (int i = leftInd; i < rightInd; i++) { //cout << i << endl; if (i + nums[i] >= newRightInd) { newRightInd = i + nums[i] + 1; } } if (newRightInd <= rightInd) { break; } leftInd = rightInd; rightInd = newRightInd; //cout << leftInd << " " << newRightInd << endl; } return rightInd >= endInd; } };
相关文章推荐
- Leetcode 55. Jump Game
- 算法分析与设计——LeetCode:55. Jump Game
- LeetCode 55. Jump Game
- [LeetCode]--55. Jump Game
- LeetCode 55. Jump Game
- Leetcode 55. Jump Game
- 【LeetCode】55. Jump Game
- Leetcode 55. Jump Game
- 第五周:[Leetcode]55. Jump Game
- 【C++】【LeetCode】55. Jump Game
- leetcode.array--55. Jump Game
- LeetCode 55. Jump Game
- Leetcode 55. Jump Game
- LeetCode 55. Jump Game
- 【leetcode】55. Jump Game
- [LeetCode] 55. Jump Game
- Leetcode-55. Jump Game
- Leetcode题解 - 55. Jump Game
- leetcode刷题之旅——55. Jump Game
- leetcode 55. Jump Game