Leetcode 1326.庭を灌漑するための蛇口の最小数(69日目)----動的計画法の学習期間(アルゴリズムの問題のパスは非常に長く、蓄積が少なすぎます)

元のタイトル

ここに画像の説明を挿入


コードの実装(ソリューションを確認するための最初のブラシのほとんど、自己解決のごく一部)

class Solution {
    
    
public:
    int minTaps(int n, vector<int>& ranges) {
    
    
        vector<int> dp(n+1,INT_MAX);
        int l,r,pre;
        for(int i=0;i<=n;++i)
        {
    
    
            if(!ranges[i])  continue;
            l = max(0,i-ranges[i]);
            r = min(n,i+ranges[i]);

            pre = (l<=0 ? 0: dp[l]);
            if(pre == INT_MAX) continue;
            for(int temp = l;temp<=r;temp++)
                dp[temp] = min(dp[temp],pre+1);
        }
        return dp[n]==INT_MAX ? -1:dp[n];
    }
};

おすすめ

転載: blog.csdn.net/qq_37500516/article/details/115205754