568. Maximum Vacation Days
https://leetcode.com/problems/maximum-vacation-days/
class Solution {
public:
int maxVacationDays(vector<vector<int>>& flights, vector<vector<int>>& days) {
const int N = days.size(), K = days[0].size();
vector<vector<int>> dp(K, vector<int>(N, -1));
dp[0][0] = days[0][0];
for (int j = 1; j < N; ++j) {
if (flights[0][j] == 0) continue;
dp[0][j] = days[j][0];
}
for (int i = 1; i < K; ++i) {
for (int j = 0; j < N; ++j) {
for (int k = 0; k < N; ++k) {
if (dp[i - 1][k] == -1 || k != j && flights[k][j] == 0) continue;
dp[i][j] = max(dp[i][j], dp[i - 1][k] + days[j][i]);
}
}
}
int res = 0;
for (int j = 0; j < N; ++j) {
res = max(res, dp[K - 1][j]);
}
return res;
}
};Last updated