用Python跳游戏II

假设我们有一个整数数组,其中所有元素都是正数。初始起点是索引1。数组中的每个元素都代表我们在该位置的最大跳跃长度。我们的目标是以更少的跳跃次数到达最终单元。因此,如果数组类似于[2,3,1,1,4],然后输出将为2,因为我们可以从0跳到索引1,然后跳到索引4,即最后一个索引。

为了解决这个问题,我们将遵循以下步骤-

  • 结束:= 0,跳跃:= 0,最远:= 0

  • 对于i,范围为0到nums – 1

    • 增加跳跃数1

    • 结束:=最远

    • 最远的:=最远的最大和数字[i] + i

    • 如果我是结尾,并且我不是nums – 1的长度,则

    • 返回跳跃

    示例

    让我们看下面的实现以更好地理解-

    class Solution(object):
       def jump(self, nums):
          end = 0
          jumps = 0
          farthest = 0
          for i in range(len(nums)):
             farthest = max(farthest,nums[i]+i)
             if i == end and i != len(nums)-1:
                jumps+=1
                end = farthest
          return jumps
    ob = Solution()print(ob.jump([2,3,1,1,4]))

    输入值

    [2,3,1,1,4]

    输出结果

    2