题解 | #牛群跃迁#

牛群跃迁

https://www.nowcoder.com/practice/565683772800460496f2d10f2388698e

  • 题目考察的知识点 : 贪心算法
  • 题目解答方法的文字分析:
  1. 从前往后遍历数组,在每个位置上计算出当前能够到达的最远距离,如果最远距离小于等于当前位置,则说明无法继续前进了,返回 False。如果最远距离大于等于数组的长度减 1,则说明已经到达了最后一个障碍,返回 True。
  2. 维护一个变量 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题的解法思路

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务