zoukankan      html  css  js  c++  java
  • Jump Game 解答

    Question

    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.

    Solution

    We apply Greedy Algorithm here to solve the problem. Key to the solution is to check largest distance that every element can reach.

    1) when the current position can not reach next position (return false)

    2) when the maximum index can reach the end (return true).

     

     1 public class Solution {
     2     public boolean canJump(int[] nums) {
     3         if (nums == null || nums.length <= 1)
     4             return true;
     5         int max = 0;
     6         for (int i = 0; i < nums.length; i++) {
     7             if (nums[i] == 0 && max <= i)
     8                 return false;
     9             if (i + nums[i] > max)
    10                 max = i + nums[i];
    11             if (max >= nums.length - 1)
    12                 return true;
    13         }
    14         return false;
    15     }
    16 }
  • 相关阅读:
    [算法] 网络中最小费用最大流
    [题解] 完美数
    [算法] 扫描线及其应用
    等待时间
    键盘操作
    鼠标操作
    元素常用操作
    元素的定位·CSS
    元素的定位·XPATH
    元素的定位
  • 原文地址:https://www.cnblogs.com/ireneyanglan/p/4853009.html
Copyright © 2011-2022 走看看