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

LeetCode -- Jump Game

题目描述:


Given an array of non-negative integers, you are initially positioned at the first index of the array.


Each element in the array represents your maximum jump length at that position.


Determine if you are able to reach the last index.


For example:
A = [2,3,1,1,4], return true.


A = [3,2,1,0,4], return false.


思路:


就是给定一个数组,每个数字(nums[i]=n)表示当前索引i所能到达的最远索引为i + nums[i]。
例如,对于[3,2,1,0,4]来说,前三位所能到达的最远索引为:0+3,1+2,2+1均为3,可nums[3]为,故无法继续前行。


问,判断从索引0开始出发,能否到达末尾。


1. 使用1个reachableIndex来表示所能到达的最远索引,初始化为nums[0]+0 = nums[0],如果第一个索引为0,直接返回false
2. 从nums[1]开始往后走,如果reachableIndex小于当前索引,而当前nums[i]又为0,返回false
3. 如果num[i]+i的值比当前的reachableIndex大,更新reachableIndex
4. 如果reachableIndex比nums的长度大,返回True









实现代码:


public class Solution {
    public bool CanJump(int[] nums) 
    {
    	if(nums.Length <= 1){
    		return true;
    	}
    	
    	var reachableIndex = nums[0]; // nums[0] + 0
    	if(reachableIndex == 0){
    		return false;
    	}
	
    	for(var i = 1;i < nums.Length; i++){
    		if(reachableIndex <= i && nums[i] == 0){
    			return false;
    		}
    		
    		if(nums[i] + i > reachableIndex){
    			reachableIndex = nums[i] + i;
    		}
    		
    		if(reachableIndex >= nums.Length - 1){
    			return true;
    		}
    	}
    	
    	return false;
    }


}


相关文章:

  • 好,是没有尽头的
  • LeetCode -- Palindrome Partitioning
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • LeetCode -- Pow(x, n)
  • (ZT)出版业改革:该死的死,该生的生
  • LeetCode -- Rectangle Area
  • 推荐一个做“台”的思路
  • LeetCode -- Reverse Nodes in k-Group
  • LeetCode -- Binary Search Tree Iterator
  • 使用pgRouting进行路径分析
  • LeetCode -- Combination Sum III
  • 怎样使用深度纹理
  • LeetCode -- Expression Add Operators
  • [Web 开发] 获取页面元素的坐标及大小
  • LeetCode -- First Bad Version
  • ----------
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • CSS实用技巧
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ES6语法详解(一)
  • Hibernate最全面试题
  • java中的hashCode
  • js对象的深浅拷贝
  • js如何打印object对象
  • Median of Two Sorted Arrays
  • npx命令介绍
  • Python学习之路16-使用API
  • Sass Day-01
  • Spring Cloud Feign的两种使用姿势
  • swift基础之_对象 实例方法 对象方法。
  • uni-app项目数字滚动
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 产品三维模型在线预览
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端临床手札——文件上传
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 我的面试准备过程--容器(更新中)
  • 原生 js 实现移动端 Touch 滑动反弹
  • (9)目标检测_SSD的原理
  • (C语言)fread与fwrite详解
  • (C语言)字符分类函数
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (超详细)语音信号处理之特征提取
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • .NET CLR基本术语
  • .NET Core Web APi类库如何内嵌运行?
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET成年了,然后呢?
  • .NET下ASPX编程的几个小问题
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [2023-年度总结]凡是过往,皆为序章