class Solution {
public:
int mincostTickets(vector<int>& days, vector<int>& costs) {
int mx = days[days.size() - 1] + 30;
int loc = 0;
int dp[400];
memset(dp,0,sizeof(dp));
for(int i=1;i<=mx;i++){
if(loc<days.size() && days[loc] == i){
dp[i] = dp[i-1] + costs[0];
loc++;
}else{
dp[i] = dp[i-1];
}
if(i-7>=0) dp[i] = min(dp[i],dp[i-7] + costs[1]);
if(i-30>=0) dp[i] = min(dp[i],dp[i-30]+costs[2]);
}
return dp[mx];
}
};
No.55 - leetcode983 - 买票-简单dp
最新推荐文章于 2024-07-24 09:12:35 发布