力扣第983题 最低票价

Posted woodjay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣第983题 最低票价相关的知识,希望对你有一定的参考价值。

力扣第983题 最低票价

技术图片

技术图片

class Solution {
private:
    vector<int> days, costs;
    vector<int> dp;
    int durations[3] = {1, 7, 30};
public:
    int mincostTickets(vector<int>& days, vector<int>& costs)
    {
        this->days = days;
        this->costs = costs;
        dp.assign(days.size(), -1);
        return func(0);
    }

    int func(int i)
    {
        int len = days.size();
        if(len <= i)
            return 0;
        if(dp[i] != -1)
            return dp[i];
        dp[i] = INT_MAX;
        int j = i;
        for(int k = 0; k < 3; k++)
        {
            while(j < len && days[j] < days[i] + durations[k])
                j++;
            dp[i] = min(dp[i], func(j) + costs[k]);
        }
        return dp[i];
    }

};

以上是关于力扣第983题 最低票价的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 983. 最低票价

LeetCode 983. 最低票价

LeetCode | 983.最低票价(动态规划)

LeetCode | 983.最低票价(动态规划)

力扣第56题 合并区间

力扣第820题 单词的压缩编码