Solving Questions With Brainpower - Problem
You are given a 0-indexed 2D integer array questions where questions[i] = [pointsi, brainpoweri].
The array describes the questions of an exam, where you have to process the questions in order (i.e., starting from question 0) and make a decision whether to solve or skip each question. Solving question i will earn you pointsi points but you will be unable to solve each of the next brainpoweri questions. If you skip question i, you get to make the decision on the next question.
Example: Given questions = [[3, 2], [4, 3], [4, 4], [2, 5]]:
- If question 0 is solved, you will earn 3 points but you will be unable to solve questions 1 and 2.
- If instead, question 0 is skipped and question 1 is solved, you will earn 4 points but you will be unable to solve questions 2 and 3.
Return the maximum points you can earn for the exam.
Input & Output
Example 1 — Basic Decision Making
$
Input:
questions = [[3,2],[4,3],[4,4],[2,5]]
›
Output:
7
💡 Note:
Maximum points by solving questions 0 and 3: Skip question 0 (or solve it), solve question 1 for 4 points (can't solve questions 2,3), then solve question 3 for 2 points. Actually, the optimal is: solve question 1 (4 points, skip questions 2,3) + question 3 isn't available, OR solve question 0 (3 points, skip questions 1,2) + solve question 3 (2 points). Better strategy: solve questions 1 and 3 for 4+2=6, or solve question 2 for 4 points. Actually, solve question 1 (4 points, skip to question 4) + solve question 0 (3 points, skip to question 3) = 7 points total by working backwards.
Example 2 — All Skip vs Solve Dilemma
$
Input:
questions = [[1,1],[2,2],[3,3],[4,4],[5,5]]
›
Output:
7
💡 Note:
Optimal strategy: solve questions at indices 1 (2 points, skip question 2,3) and 4 (5 points) for total 2+5=7 points
Example 3 — Single Question
$
Input:
questions = [[21,5]]
›
Output:
21
💡 Note:
Only one question available, solve it for 21 points
Constraints
- 1 ≤ questions.length ≤ 105
- questions[i].length == 2
- 1 ≤ pointsi, brainpoweri ≤ 105
Visualization
Tap to expand
Understanding the Visualization
1
Input
Array of questions with [points, brainpower] values
2
Decision
For each question: solve (gain points, skip next brainpower) or skip (move to next)
3
Output
Maximum points achievable with optimal strategy
Key Takeaway
🎯 Key Insight: Work backwards to determine the optimal choice at each position based on future possibilities
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code