zoukankan      html  css  js  c++  java
  • 55. 跳跃游戏

    给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。
    输入: [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 }
  • 相关阅读:
    POJ 2955 Brackets 区间DP
    POJ 3311 Hie with the Pie 最短路+状压DP
    POJ 3615 Cow Hurdles(最短路径flyod)
    hdu 3790 最短路径dijkstra(多重权值)
    poj 3254 Corn Fields 状压DP
    状压DP
    poj2411 Mondriaan's Dream 状压DP
    M: Mysterious Conch 字符串哈希
    哈希(hash)理解
    域渗透:GPP(Group Policy Preferences)漏洞
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11751279.html
Copyright © 2011-2022 走看看