当前位置: 首页 > article >正文

LeetCode.55.跳跃游戏(贪心算法思路)

题目描述:

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false

输入输出实例:

思路:要判断最后我们是否能到达最后一个位置,我们可以选择遍历数组,使用贪心的思路,找在每个位置时能到达的最远距离,最开始我们在0,可以达到的最远距离为nums[0],遍历数组,如果位置 'i' 在当前的最远距离范围内,我们比较当前最远距离和(i + nums[i])取更大的那个,进行最远可达位置的更新,在这个过程中,一旦最远可达位置超过或等于最后的位置,我们就可以retur True,否则我们返回False。根据上述思路,有以下代码:

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        #最远可达位置
        max_site = nums[0]

        for i in range(len(nums)):
            if i <= max_site :
                max_site = max(max_site , i + nums[i])
            if max_site >= len(nums) - 1 :
                return True
        
        return False

 


http://www.kler.cn/a/280903.html

相关文章:

  • Python + Playwright(24):处理HTTPS错误
  • 鸿鲤到家连锁家政品牌,服务到家,培训到位,安心无忧
  • Android 13.0 framework层实现app默认全屏显示
  • 异或+与+或
  • (经验)SVN降版本,保留版本信息和用户信息。
  • LabVIEW中10μs方波生成问题
  • vscode go开发环境
  • 【系统分析师】-缓存
  • 立体库技术协议:完整版
  • [Linux#47][网络] 网络协议 | TCP/IP模型 | 以太网通信
  • PHP之 ThinkPHP5配置redis缓存
  • YoloV8损失函数篇(代码加理论)
  • C++从入门到起飞之——list使用 全方位剖析!
  • Aiseesoft Data Recovery for Mac:专业级数据恢复解决方案
  • 优化慢sql
  • 计算机基础复习8.28
  • [Linux#46][线程->网络] 单例模式 | 饿汉与懒汉 | 自旋锁 |读写锁 | 网络基础 | 书单
  • 【Java 设计模式】Business Delegate 模式:简化业务服务交互
  • 大数据面试-Zookeeper
  • 流媒体协议之RTCP