Untitled

 avatar
unknown
plain_text
9 days ago
598 B
2
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