zoukankan      html  css  js  c++  java
  • 55. Jump Game

    55. 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.

    Example 1:

    Input: [2,3,1,1,4]
    Output: true
    Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.
    

    Example 2:

    Input: [3,2,1,0,4]
    Output: false
    Explanation: You will always arrive at index 3 no matter what. Its maximum
                 jump length is 0, which makes it impossible to reach the last index.

      这个大致解释下题意,每个元素的值代表当前能跳过的最大步数,最终能到达最后一个元素,即可返回true,否则返回false,下面一张图可以表达题干中的两个例子:

            

      代码思路,基本遵循,局部最优和整体最优的原则,其中:
      1、局部最优,即 nums[i] + i ,第i个元素能走到的最优距离。

      2、整体最优,即局部最优的最大值。

      具体代码如下:

        public boolean canJump(int[] nums) {
            if (null == nums || 1 == nums.length) {
                return true;
            }
            int global = 0;
            int local = 0;
            for (int i = 0; i < nums.length - 1; i++) {
                if (global < i) {
                    break;
                }
                local = nums[i] + i;
                global = Math.max(local, global);
            }
            if (global >= nums.length - 1) {
                return true;
            }
            return false;
        }
  • 相关阅读:
    准确获取URL地址参数
    你不知道的CSS
    axios拦截http拦截
    eclipse无法启动报错、打开Eclipse报错、Eclipse无法打开
    天猫优惠券领取
    微信公众号 订阅号,服务号,企业号区别
    WebService的两种方式SOAP和REST比较 (转)
    线程池
    秒杀应用的MySQL数据库优化
    关系型数据库和非关系型数据库
  • 原文地址:https://www.cnblogs.com/lyInfo/p/9098115.html
Copyright © 2011-2022 走看看