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];
}
}
