题解 | #牛群跃迁#
牛群跃迁
https://www.nowcoder.com/practice/565683772800460496f2d10f2388698e
- 题目考察的知识点 : 贪心算法
- 题目解答方法的文字分析:
- 从前往后遍历数组,在每个位置上计算出当前能够到达的最远距离,如果最远距离小于等于当前位置,则说明无法继续前进了,返回 False。如果最远距离大于等于数组的长度减 1,则说明已经到达了最后一个障碍,返回 True。
- 维护一个变量 reach,表示当前能够到达的最远距离。对于每个位置 i,如果 reach 小于 i,则直接返回 False。否则,更新 reach 的值为 max(reach, i + nums[i])。当 i 大于等于数组的长度减 1 时,返回 True。
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return bool布尔型 # class Solution: def can_jump(self , nums: List[int]) -> bool: n = len(nums) reach = 0 # 当前能够到达的最远距离 for i in range(n): if i > reach: # 当前位置无法到达 return False reach = max(reach, i + nums[i]) if reach >= n-1: # 已经到达终点 return True return True # 无论如何都要返回 True
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路