跳跃游戏---动态规划
发布日期:2021-05-07 02:59:50 浏览次数:20 分类:精选文章

本文共 829 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

class Solution {       /*    分析:    最值型动态规划  max  min    计算型动态规划 ++    存在型的动态规划  and or     分析状态:    跳到最后一个位置的前提是:    能够跳到前一步的位置,并且前一步的位置的值能够跳到最后就可以    当然可能有多个结果可以让我们跳到最后    我们这里是存在型的动态规划    子问题:    那我们就转化为了如何跳到前一个位置    分析边界条件:    第一个位置 f[0] = true;一定可以达到    递推方程:    f[i] 设为是否能够到达    =f[j] && j+nums[j] >= i(存在就行)    从头到尾遍历 已经有了答案是否能够到达的结果 判断当前到达+ 距离能否到达i    */    public boolean canJump(int[] nums) {           boolean f[] = new boolean[nums.length];//定义数组 判断是否可到达        f[0] = true;        for(int i = 1 ; i < nums.length ; i++){    // 当前的位置是否可以到达 取决于之前的位置            for(int j = 0 ; j < i ; j++){   //遍历之前所有的结果 判断当前如果能到达,如果能到达看看是否加上本身的位置的值能否到达最后                if(f[j]&& j+nums[j]>=i){                       f[i] = true;                    break;                }            }        }        return f[nums.length -1];    }}
上一篇:不同路径2 --动态规划
下一篇:不同路径--动态规划

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年03月31日 16时51分42秒