封面

2770. 达到末尾下标所需的最大跳跃次数

写作时间:1778901921173
# 力扣算法专题
# 每日一题系列

2770. 达到末尾下标所需的最大跳跃次数 - 力扣(LeetCode)

条件约束为:

  • 从i跳到j,需要满足i<j并且abs(nums[j]-nums[i])≤target
  • 寻找最大跳跃次数

思路:

  • dp[i]表示从0跳到i的最大次数
  • dp[j]=Math.max(dp[j],dp[i]+1)
class Solution {
    public int maximumJumps(int[] nums, int target) {
        int n=nums.length;
        int[] dp = new int[n];
        for(int i=0;i<n;i++){
            dp[i]=-1;
        }
        dp[0]=0;
        for(int j=1;j<n;j++){
            for(int i=0;i<j;i++){
                if(Math.abs(nums[j]-nums[i])<=target&&dp[i]!=-1){
                    dp[j]=Math.max(dp[j],dp[i]+1);
                }
            }
        }
        return dp[n-1];
    }
}