LeetCode打卡挑战之跳跃游戏 II
2020-06-08 05:42
260 查看
题目描述 跳跃游戏 II
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
示例:
输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
解题思路
简单的来说,其实就是贪心算法,我们在每一次跳跃的时候,都去跳跃当前位置能跳跃的最大长度。
可以清楚的看到整个过程其实就是一直在寻找一个maxPos。
代码
class Solution { public: int jump(vector<int>& nums) { int start = 0; int end = 1; int ans = 0; while(end < nums.size()) { int maxPos = 0; for(int i = start;i < end;i++) { maxPos = max(maxPos, i + nums[i]);//最大距离就是当前位置加跳跃长度 } start = end; end = maxPos + 1; ans++; } return ans; } };
性能分析
相关文章推荐
- LeetCode刷题笔记 45. 跳跃游戏 II
- 算法学习——leetcode45. 跳跃游戏 II
- leetcode解题之45. Jump Game II&55. Jump Game java (跳跃游戏)
- [LeetCode] 45. Jump Game II 跳跃游戏 II
- LeetCode45 跳跃游戏 II (贪心加详细注释)
- LeetCode 45. 跳跃游戏 II | Python
- 每日一题 Day4--leetcode45--跳跃游戏 II
- leetcode55. 跳跃游戏、45. 跳跃游戏 II(c++)
- 【leetcode】Jump Game I, II 跳跃游戏一和二
- LeetCode | Jump Game II(跳跃游戏II)
- [LeetCode] Jump Game II 跳跃游戏之二
- leetcode-跳跃游戏II-贪心算法(python)
- Leetcode做题日记:45. 跳跃游戏 II(PYTHON)
- Leetcode 45. 跳跃游戏 II
- LeetCode-Jump Game II-跳跃游戏-BFS
- LeetCode || 45. 跳跃游戏II
- leetcode。45. 跳跃游戏 II
- leetcode-45.跳跃游戏II(hard)
- Leetcode 45. 跳跃游戏 II
- 【LeetCode】Jump Game II 跳跃游戏II - 贪心 Medium