代码如下:
class Solution {
public:
int mincostTickets(vector<int>& days, vector<int>& costs) {
int dp[366];
int flag[366]={0};
dp[0] = 0;
for(auto &i : days)flag[i] = 1;
for(int i=1; i<7; ++i)
{
dp[i] = dp[i-1]+flag[i]*costs[0];
}
for(int i=7; i<30; ++i)
{
dp[i] = min(dp[i-1]+flag[i]*costs[0], dp[i-7]+costs[1]);
}
for(int i=30; i<366; ++i)
{
dp[i] = min(min(dp[i-1]+flag[i]*costs[0], dp[i-7]+costs[1]), dp[i-30]+costs[2]);
}
return dp[365];
}
};