First Day Where You Have Been in All the Rooms LeetCode solution in C++

1
#define ll long long
2
int mod = 1e9 + 7;
3
class Solution {
4
public:
5
int firstDayBeenInAllRooms(vector<int> &nextVisit) {
6
int n = nextVisit.size();
7
vector<vector<ll>> dp(n, vector<ll>(2, 0));
8
dp[0][0] = 2;
9
dp[0][1] = 1;
10
for (int i = 1; i < n; i++) {
11
dp[i][1] = dp[i - 1][0] + 1;
12
if (i == n - 1) break;
13
dp[i][0] = (dp[i][1] + (dp[i - 1][0] - dp[nextVisit[i]][1]) + 2) % mod;
14
}
15
return (dp[n - 1][1] + mod - 1) % mod;
16
}
17
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0