Python 中的跳跃游戏 II

pythonserver side programmingprogramming更新于 2026/1/15 7:08:17

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

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

  • end := 0, jumps := 0, farthest := 0

  • for i in range 0 to length of nums – 1

    • farthest := farthest 和 nums[i] + i 的最大值

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

      • 将跳跃次数增加 1

      • 结束 := farthest

  • 返回 jumps

示例

让我们看下面的实现,以便更好地理解 −

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

相关文章


有用资源