Untitled
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]; } };
Leave a Comment