Untitled
unknown
plain_text
a year ago
974 B
6
Indexable
class Solution {
public:
int mincostTickets(vector<int>& days, vector<int>& costs) {
int noOfDays= days.size();
vector<int> minCostDayWise(366, INT_MAX);
minCostDayWise[0]=0;
unordered_set<int> travellingDays;
for(auto day: days) travellingDays.insert(day);
for(int i=1;i<366;i++){
if(travellingDays.count(i)){
minCostDayWise[i]= minCostDayWise[i-1]+ costs[0];
int cost7DayBefore= i-7>=0 ? minCostDayWise[i-7]: 0;
minCostDayWise[i]= min(cost7DayBefore+ costs[1], minCostDayWise[i]);
int cost30DayBefore= i-30>=0 ? minCostDayWise[i-30]: 0;
minCostDayWise[i]= min(cost30DayBefore+ costs[2], minCostDayWise[i]);
}else{
minCostDayWise[i]= minCostDayWise[i-1];
}
}
return minCostDayWise[365];
}
};Editor is loading...
Leave a Comment