给定一个非负整数数组,你最初位于数组的第一个位置。

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

判断你是否能够到达最后一个位置。

示例 1:

输入: [2,3,1,1,4]
输出: true
解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。
示例 2:

输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

本题中如果数组长度为1,即便这个数是0,也会认为可以到达,返回true
public class Solution {
    public static boolean canJump(int[] nums) {
        int i,j,max,t = 0;
        int n = nums.length;
        if(n==1)
        {
            return true;
        }
        if(n!=1&&nums[0]==0)
        {
            return false;
        }
        for(i=0;i<n-1;)
        {
            max = -10000;
            if(nums[i]+i>=n-1)
            {
                return true;
            }
            for(j=i+1;j<=i+nums[i]&&j<n;j++)  //判断当前点可以到达的范围
            {
                if(nums[j]+j>=max)   //在可到达的范围中选择离终点最近的位置,即考虑所有点的nums值以及其所在的位置两个因素
                {
                    max = nums[j]+j;
                    t = j;
                }
                if(j==n-1)
                {
                    return true;
                }
            }
            if(max==-10000)
            {
                break;
            }
            i = t;
            max = nums[i];
            if(max==0)
            {
                break;
            }
        }
        return false;
        
    }
    public static void main(String[] args)
    {
        //int[] a = {2,3,1,1,4};
        int[] a = {3,2,1,0,4};
        //int[] a = {1,1,1,0};
        //int[] a = {1,1,2,2,0,1,1};
        System.out.println(canJump(a));
    }
}

Leetcode--55. 跳跃游戏相关推荐

  1. LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)

    LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...

  2. LeetCode 55. 跳跃游戏 中等难度

    55. 跳跃游戏 题目: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1:输入: [2,3,1,1, ...

  3. LeetCode 55. 跳跃游戏(贪心)

    1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1:输入: [2,3,1,1,4] 输出: ...

  4. Java实现 LeetCode 55 跳跃游戏

    55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] ...

  5. LeetCode 55. 跳跃游戏

    ​​​​​​55. 跳跃游戏 题目描述: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个下标. 代码 ...

  6. LeetCode 55跳跃游戏56合并区间57插入区间

    原创公众号:bigsai 希望和优秀的你做朋友,感觉不错还请一键三连. 回复进群即可加入和200+人一起打卡.上周打卡: LeetCode 47全排列Ⅱ&48旋转图像 LeetCode 49字 ...

  7. 贪心法——LeetCode 55 跳跃游戏

    跳跃游戏 题目: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] ...

  8. leetcode - 55. 跳跃游戏

    给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: true ...

  9. Leetcode 55.跳跃游戏 (每日一题 20210706)

    给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 .数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个下标.示例 1:输入:nums = [2,3,1,1,4] ...

  10. leetcode 55. 跳跃游戏 思考分析

    题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例1: 输入: [2,3,1,1,4] 输出: tru ...

最新文章

  1. HTTP Host 头攻击,是什么鬼?
  2. JDBC进行简单的增删改查
  3. mysql ubb html_UBB中轻松实现歌词同步播放_html
  4. 计算机精英协会考核题 —— 第三题:斐波那契数
  5. python数据分析入门
  6. c#书写规范之---代码书写规范
  7. 把别人的Tcl/Tk代码加入到Go语言里2 矩形
  8. Redis的数据类型(对象)
  9. mysql v$session_关于V$SESSION视图
  10. python lmdb使用
  11. galerkin有限元法matlab实现,应用Matlab实现有限元分析.pdf
  12. Linux时间同步(NTP)
  13. 东南大学硕士毕业论文Latex 模版教程
  14. Linux for嵌套if的格式,Shell篇(2)-条件语句if及循环语句 for , while , unti
  15. edp和edt哪个好_菲拉格慕香水edp和edt的区别 选择适合自己的香水方法
  16. Java 读取Excel ( xls 和 xlsx 格式 )
  17. 手机玩exe游戏的模拟器_手机就能玩Switch游戏,蛋蛋模拟器+盖世小鸡X2手柄体验...
  18. 微信小程序 -- 真机调试时没问题,上线后无法访问服务器
  19. 【Golang开发面经】字节跳动(三轮技术面)
  20. 用python做思维导图软件_分享一下python数据处理工具思维导图

热门文章

  1. android model 设计,Android model层设计
  2. oid 值 内存使用_[技术干货] zabbix监控项原型组合键值
  3. wordpress acf字段 不同样式_提升wordpress执行效率二次开发实录
  4. 李宏毅机器学习(五)Transformer
  5. 2020年深度学习调参技巧合集
  6. 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较
  7. python实现requests访问接口,比如es接口
  8. 斯坦福李纪为博士毕业论文:让机器像人一样交流
  9. Android官方开发文档Training系列课程中文版:添加ActionBar之ActionBar浮层效果
  10. Hadoop 命令操作