算法学习:55. 跳跃游戏

2023-11-08

跳跃游戏

题目难度:中等
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。


数组中的每个元素代表你在该位置可以跳跃的最大长度。


判断你是否能够到达最后一个下标。


示例


输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

思路

此题跳几步无所谓,关键在于可跳的覆盖范围,不一定非要明确每次跳几步,每次取最大的跳跃步数,这个就是可以跳跃的覆盖范围。这个范围不管怎么跳的,反正一定可以跳过来。
每次取最大跳跃步数(取最大覆盖范围),整体最优:得到整体最大覆盖范围,看能否到终点。

贪心代码

class Solution{
	public boolean canJump(int[] nums) {
		if(nums.length == 1){
			return true;
		}
		//覆盖范围, 初始覆盖范围应该是0,因为下面的迭代是从下标0开始的
		int coverRange = 0;
		//在覆盖范围内更新最大的覆盖范围
		for(int i = 0;i<=coverRange;i++){
			coverRange = Math.max(coverRange, i + nums[i]);
			if(coverRange >= nums.length - 1){
				return true;	
			}
		}
		return false;
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法学习:55. 跳跃游戏 的相关文章

随机推荐

  • 设计模式:状态机模式

    首先状态机模式是处理一个类在内部状态改变的时候 其方法处理信息的模式也会改变 这里说一个在RTS游戏里的应用 有限状态机 我们要赋予每个战斗单位一个智能 比如一定范围内检测到地方单位 且自身处于游荡或者Patrol状态 那么就转换为攻击状态
  • [MAC各类右键菜单修改]Automator WorkFlow: 扩展右键菜单

    一 前 废 言 话 Automator是我最喜欢的OS X预装程序之一 能轻松以简单的拖拽创建一个工作流程 WorkFlow 也能用AppleScript和终端Shell辅助完成操作 这篇帖子主要分享我最近写的一些Automator工作流程
  • JAVA NIO 基础

    原文地址 http www iteye com topic 834447 1 基本 概念 IO 是主存和外部设备 硬盘 终端和网络等 拷贝数据的过程 IO 是操作系统的底层功能实现 底层通过 I O 指令进行完成 所有语言运行时系统提供执行
  • 六、ARP协议

    一 ARP 地址解析协议 Address Resolution Protocol 是将IP地址解析为MAC地址的协议 ARP没有IP封装 Type为0X0806 ARP不能穿越路由器 不能被转发到其他广播域 ARP分为 1 正向ARP IP
  • mpvue的入门

    奔三路学习网移动版 首页 vue面试通 前端面试通 大前端知识 挨踢职场 找前端工作 搜索 主页 gt vue面试通 gt 开源框架 gt mpvue菜鸟踩坑吃鸡篇一 时间 2018 04 25 11 46 来源 未知 作者 admin 点
  • mysql show table column_Mysql 常用show命令 show table-奇乐网

    Mysql 常用show命令 show tables或show tables from database name或show database name tables 解释 显示当前数据库中所有表的名称 show databases 解释
  • leetcode 535. Encode and Decode TinyURL(对URL编解码)

    Note This is a companion problem to the System Design problem Design TinyURL TinyURL is a URL shortening service where y
  • 搞懂一般的stacking和blending只需一张图片

    搞懂一般的stacking和blending只需一张图片 搞不懂我把这张图片的纸吃了 下面再简单参考一下其他博主的对于这两种集成方法的比较 Blending的优点在于 1 比stacking简单 因为不用进行k次的交叉验证来获得stacke
  • postgresql用sql语句查询表结构

    用到的postgresql系统表 关于postgresql系统表 可以参考PostgreSQL 8 1 中文文档 系统表 pg class 记录了数据库中的表 索引 序列 视图 关系 其中比较重要字段有 relname 表 索引 视图等的名
  • JsRPC生成某乎3.0版x-zse-96学习分析,网站:aHR0cHM6Ly93d3cuemhpaHUuY29tLw==

    一 jsrpc工具 用的是github上一位大神所写的工具 里面有写具体用法 https github com jxhczhl JsRpc 点进去下载安装包 下载本地版 https wss版本需要在当前目录放证书 下载后直接双击运行 开启服
  • Java 判断一个对象中某一个属性的值是否为空

    每次写博客都不知道咋开头 算了 直接说问题吧 就是验证一个对象中的一个属性的值是否为空 自己在网上也找到了很多大神给的答案 有看到利用反射机制 public boolean checkObjFieldIsNull Object obj th
  • react 获取response header中content-disposition中的filename值

    我们在开发中经常会碰到下载文件 后端将fileName放在response header中 我们该如何获取呢 首先是请求接口 注 getResponse true 这个属性必不可少 它可以返回返回 data response 其次是代码写法
  • 不识别v-on标签,不识别v-bind标签 idea 报错(Namespace 'v-on' not bound more....)

    解决办法 setting 里面去掉这个UNbound xml namespace prefix
  • python去掉字符串重复字符_【python】【字符串】字符串首尾相连,去掉连接处的重复...

    coding utf 8 字符串从反向拆词 def string depart str1 ls str1 str tmp for str t in reversed str1 str tmp str t str tmp ls str1 ap
  • 通信技术之复用与解复用

    想像一下 如果一条信道一次只能传输一条信息 那么对于海量的信息来说 传输的速度未免太慢了 因此 我们想要一根线上传送多路信号 复用技术就应运而生了 在上一篇博客中 我们知道了PCM编码的位数是8 抽样周期是1s 8000次 125us 在这
  • 机器学习——基本认识

    一 机器学习定义 机器学习 Machine Learning 什么是机器学习 Arthur Samuel 机器学习领域的先驱之一 他编写了世界上第一个棋类游戏的人工智能程序 1959年对机器学习的定义 Machine Learning is
  • Fiddler Everywhere(TTP调试抓包工具) for Mac苹果电脑版

    Fiddler Everywhere for Mac版是Mac电脑上的一款跨平台的HTTP调试抓包工具 Fiddler Everywhere for Mac能够记录客户端与服务器之间的所有HTTP S 通信 支持对包进行监视 分析 设置断点
  • 微信小程序——小程序的API介绍

    小程序的宿主环境 API 1 小程序API概述 小程序中的API是由宿主环境提供的 通过这些丰富的小程序API 开发者可以方便的调用微信提供的能力 例如 获取用户信息 本地存储 支付功能等 2 小程序API的3大分类 小程序官方把API分成
  • 用户行为记录的一个简单例子

    分析的前提 用户行为分析的前提是用户行为的记录 如下图则记录了三个用户的用户记录 设计用户记录 用户记录都包含哪些呢 用户记录对于数据分析非常重要 可以让程序员定位bug或者性能问题 产品可以查看用户体验 甚至是广告分析数据分析和用户增长模
  • 算法学习:55. 跳跃游戏

    跳跃游戏 题目难度 中等 给定一个非负整数数组 nums 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 示例 输入 nums 2 3 1 1 4 输出 true 解释 可以先