网址:https://leetcode.com/problems/minimum-cost-for-tickets/
参考:https://leetcode.com/problems/minimum-cost-for-tickets/discuss/226659/Two-DP-solutions-with-pictures
class Solution { public: int mincostTickets(vector<int>& days, vector<int>& costs) { unordered_set<int> travel(begin(days), end(days)); vector<int> dp(days.back()+1,0); for(int i=1; i<days.back()+1; i++) { if(travel.find(i) == travel.end()) dp[i] = dp[i-1]; else { dp[i] = min(dp[i-1]+costs[0], dp[max(0, i-7)]+costs[1], dp[max(0, i-30)]+costs[2]); } } return dp[days.back()]; } };