Untitled
unknown
plain_text
8 months ago
598 B
3
Indexable
class Solution {
private long dfs(int i, int[][] questions,long[] dp) {
if(i == questions.length -1)
return questions[i][0];
if(i>=questions.length)
return 0;
if(dp[i]!=-1) return dp[i];
long take = questions[i][0] + dfs(questions[i][1]+i+1,questions,dp);
long nottake = dfs(i+1,questions,dp);
return dp[i] = Math.max(take,nottake);
}
public long mostPoints(int[][] questions) {
long[] dp = new long[questions.length+1];
Arrays.fill(dp,-1);
return dfs(0,questions,dp);
}
}Editor is loading...
Leave a Comment