码迷,mamicode.com
首页 > 其他好文 > 详细

55. 跳跃游戏

时间:2019-10-28 12:53:01      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:中间   整数   bool   描述   动态   col   有一个   return   bsp   

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。
输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。

//感想:一开始感觉没什么思路感觉像是那种搜索树的结构,想去看下答案,我点开题解的一刹那,我看见了四个字动态规划,我果断地回到了题目描述的界面,算是没看答案吧。。。

//思路:从底向上动态规划,我们声明一个dp数组,初始值最后一个元素设置为true,那肯定可以啊,然后往前走,如果遍历到的元素它的值为step,我们就可以从这个位置到加上step的位置所有的元素都可以抵达,也就说这中间只要有一个为true,那么这个位置就为true,如果走到step还是为false,说明这个位置走不到末尾,设为false,就这样走到头,得到第一个元素可以到达末尾不。

下面是代码:

 1 class Solution {
 2     public boolean canJump(int[] nums) {
 3         if(nums==null||nums.length==0)
 4             return false;
 5         int n=nums.length;
 6         boolean[] dp=new boolean[n];
 7         dp[n-1]=true;
 8         for(int i=n-2;i>=0;i--)
 9         {
10             int step=nums[i];
11             for(int j=1;j<=step;j++)
12             {
13                 if(dp[i+j]==true)
14                 {
15                     dp[i]=true;
16                     break;
17                 }
18             }
19         }
20         return dp[0];
21     }
22 }

 

55. 跳跃游戏

标签:中间   整数   bool   描述   动态   col   有一个   return   bsp   

原文地址:https://www.cnblogs.com/cold-windy/p/11751279.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!