题目:
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Your goal is to reach the last index in the minimum number of jumps.
For example:
Given array A = [2,3,1,1,4]
The minimum number of jumps to reach the last index is 2
. (Jump 1
step from index 0 to 1, then 3
steps to the last index.)
个人觉得是贪心及动态规划, 转来的
/* * We use "last" to keep track of the maximum distance that has been reached by using the minimum steps "count", whereas "current" is the maximum distance that can be reached by using "count+1" * steps. Thus, current = max(i+A[i]) where 0 <= i <= last. */ public static int jump(int[] A) { int step = 0; // 当前跳数 int last = 0; // 上一跳最远距离,从A[0]进行count次jump之后达到的最大范围 int currentMax = 0; // 当前一跳可达最远距离,从0~i这i+1个A元素中能达到的最大范围 for (int i = 0; i < A.length; i++) { // 说明count次jump已经不足以覆盖当前第i个元素,需要进行下次跳跃,则更新last和当执行的跳数count if (i > last) { step++; last = currentMax; } // 记录当前可达最远 currentMax = Math.max(currentMax, i + A[i]); } // 永远到达不了 if (last < A.length - 1) { return -1; } return step; }
相关推荐
Java题解之Jump Game II涉及编写一个Java程序来解决LeetCode上的Jump Game II问题。在这个Java程序中,我们可以使用贪心算法的解法,每次都在当前可跳范围内找到能跳到最远位置的点作为下一步的目标,以此来保证跳跃...
在Java中,LeetCode题解之Jump Game是解决算法问题的一个典型示例,此题目通常被归纳为贪心算法的范畴。该问题主要关注的是在一个数组中,规定了每次可以跳的最大步数,判断从起始位置是否能够到达数组的最后一个...
其中,编号为45的题目“Jump Game II”要求参与者编写一个函数,实现找到从数组的起始位置到达最后一个位置最少跳跃次数的算法。这个题目虽然简单,但是非常考验程序员的逻辑思维和算法设计能力。 在解决这个问题的...
java入门 java_leetcode题解之055_Jump_Game
1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一步之前的最优解则不作保留 2.由(1)中的介绍,可以知道贪
最后,需要注意的是,由于本题的输入和输出都是标准的数据结构,我们不需要在主函数中添加额外的读取和打印代码,只需要调用jumpGame函数,并传入相应的参数即可。 总的来看,这道题是对贪心算法理解和实现能力的一...
在深入解析JavaScript实现的LeetCode第45题题解时,我们首先需要了解题目的核心要求。题目45题,即“跳跃游戏 II”,要求给定一个非负整数数组,其中每个元素表示在该位置上跳跃的最大长度,问最少需要跳跃多少次...
跳游戏(Jump Game)是算法面试中常见的题目之一。在这个问题中,通常给出一个数组,数组中的每个元素表示从该位置能跳跃的最大步数,玩家从数组的第一个元素开始跳跃,目标是到达数组的最后一个元素。题目的变种...
leetcode 71 Python用 Python 编写 Leetcode (数据科学家的解决方案) - 易于理解的最佳解决方案,可以通过所有 Leetcode 测试用例,对于非 ...Game II (HARD) Leetcode 51. N-Queens (HARD) Leetcode 52. N-
leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题leetcode45题
在“Jump-Game-IV-main”文件中,可能包含了实现这个解决方案的源代码。通过分析和学习这段代码,我们可以更深入地理解上述概念,并了解如何在实际编程中应用这些算法。然而,为了适应大测试用例,可能需要进一步...
- Jump Game / Jump Game II: 第一个问题要求判断是否能到达数组的最后一个位置,第二个问题要求求出最小跳跃次数到达最后一个位置。 - Permutations / Permutations II: 生成所有可能的排列组合,考虑重复元素的...
- **Jump Game**:跳跃游戏,判断是否能到达数组末尾。 - **Gas Station**:寻找最短的加油路线。 - **Candy**:分糖果,确保每个孩子至少得到一块糖,尽可能公平。 - **Word Break**:判断一个字符串是否可以...
4. **Jump Game II**:此问题涉及到广度优先搜索(BFS)或深度优先搜索(DFS)策略,以找出在给定限制下到达最远位置的跳跃次数。它考察了图遍历和优化算法性能的能力。 5. **Sliding Window Maximum**:这是一个...
* Jump Game:给定一个数组,判断是否可以跳跃到数组的末尾。这个题目需要使用贪心算法的思想,将数组分解成更小的子数组,并判断是否可以跳跃到末尾。 * Gas Station:给定一个数组,返回可以到达的加油站数量。这...
- 在 JumpGame 和 MinimumPathSum 题目中,动态规划用于找出跳跃游戏或路径选择中达到最优解的策略。 4. **堆栈**: - 堆栈数据结构可以用于处理与括号匹配、表达式求值等相关的题目。 - 在 ...
加油站 leetcode 力扣_实践 标签: leetcode 我的 LeetCode 练习从 2020 年开始 ...Leetcode ...80_Remove_Duplicates_From_...45_Jump_Game_II 121_Best_Time_to_Buy_and_Sell_Stock 122_Best_Time_to_Buy_and_Sell_Stock_
Jump Game II - 二叉树 前序遍历判断二叉树:98. Validate Binary Search Tree - 二分查找 二分查找 + 数据缓存:1095. Find in Mountain Array 链表 有序链表合并:21. Merge Two Sorted Lists 回文 双指针判断回文...