跳跃游戏

题目:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。

  1. 解法一:
    • 解题思路:最容易想到的方法,直接遍历每一种可能的情况,暴力破解,但是这个方法超时(哭了)
    • 代码如下
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      function  canJumpyue(position , nums) {
      //到达最后一个,直接返回true
      if(position == nums.length-1){
      return true;
      }
      var JumpLength = Math.min(position+nums[position],nums.length-1);
      //遍历所有的可能路径
      for(var nextposition = position + 1;nextposition <= JumpLength;nextposition++){
      if(canJumpyue(nextposition,nums)){
      return true;
      }
      }
      return false;
      }
      var canJump = function(nums) {
      return canJumpyue(0,nums);
      };