Skip to content

Commit fedadf6

Browse files
committed
2140
1 parent facd137 commit fedadf6

File tree

1 file changed

+26
-5
lines changed
  • leetcode/2140. Solving Questions With Brainpower

1 file changed

+26
-5
lines changed

leetcode/2140. Solving Questions With Brainpower/README.md

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,36 @@ Total points earned: 2 + 5 = 7. There is no other way to earn 7 or more points.
6767
class Solution {
6868
public:
6969
long long mostPoints(vector<vector<int>>& A) {
70-
long long N = A.size();
71-
vector<long long> dp(N + 2);
70+
int N = A.size();
71+
vector<long> dp(N + 2);
7272
for (int i = 0; i < N; ++i) {
73-
int next = i + A[i][1] + 2;
74-
if (next > N) next = N + 1;
7573
dp[i + 1] = max(dp[i + 1], dp[i]);
74+
int next = min(i + A[i][1] + 2, N + 1);
7675
dp[next] = max(dp[next], dp[i + 1] + A[i][0]);
7776
}
78-
return *max_element(begin(dp), end(dp));
77+
return dp[N + 1];
78+
}
79+
};
80+
```
81+
82+
Or
83+
84+
```cpp
85+
// OJ: https://leetcode.com/problems/solving-questions-with-brainpower/
86+
// Author: github.com/lzl124631x
87+
// Time: O(N)
88+
// Space: O(N)
89+
class Solution {
90+
public:
91+
long long mostPoints(vector<vector<int>>& A) {
92+
int N = A.size();
93+
vector<long> dp(N + 1);
94+
for (int i = N - 1; i >= 0; --i) {
95+
dp[i] = max(dp[i], dp[i + 1]);
96+
int next = min(i + A[i][1] + 1, N);
97+
dp[i] = max(dp[i], dp[next] + A[i][0]);
98+
}
99+
return dp[0];
79100
}
80101
};
81102
```

0 commit comments

Comments
 (0)