leetcode-55 Jump Game
2017-03-30 15:17
477 查看
这道题本来准备用递归加回溯的方法做,也就是每次都移动最大,看看能到哪里,如果走不通,再退回一步。这样的做法,通过了72个案例,最后一个案例超时,无法通过。于是思考了贪心的方法,判断每个地方可以到达的最远距离。将两次过程记录下来
第一次,
第二次 贪心的方法
第一次,
class Solution { public: bool canJump(vector<int>& nums) { if (nums.empty()) return false; return isfinalpos(nums,0); } //当前位置为i可以跳到的地方 bool isfinalpos(vector<int> &nums, int i) { //出口 if (i >= nums.size() - 1) return true; //递归 for (int k = nums[i]; k >= 1; k--) { int pos = i + k; if (isfinalpos(nums, pos)) { return true; } } return false; } };上述方法太费时。
第二次 贪心的方法
class Solution { public: bool canJump(vector<int>& nums) { int dis=0; int i = 0; //i<=dis很重要,决定i是否在可以运动的范围内运动 for (; i < nums.size()&i<=dis; i++) dis = max(dis, i + nums[i]); if (i == nums.size()) return true; else return false; } };
相关文章推荐
- Jump Game - LeetCode 55
- LeetCode_55---Jump Game
- LeetCode 55 Jump Game
- LeetCode-55-Jump Game(C语言实现)
- LeetCode(55)Jump Game
- Leetcode 55 Jump Game
- LeetCode-55-Jump Game(贪心)-Medium
- leetcode hard模式专杀之55. Jump Game
- LeetCode 55: Jump Game
- LeetCode(55)Jump Game
- [LeetCode55]Jump Game
- leetcode55 Jump Game
- 【Leetcode】45,55 Jump game
- LeetCode 55 Jump Game
- LeetCode 55 Jump Game
- LeetCode55——Jump Game
- 【LeetCode】55:Jump Game
- LeetCode 55: Jump Game
- LeetCode(55) Jump Game
- 【LeetCode】(55)Jump Game(Medium)