ネギ -- 978。最長の乱流部分配列

1. トピック

2. 問題解決の手順

以下は、動的計画法の考え方を使ってこの問題を解決するプロセスです。この古典的な動的計画法の問題は、誰でも理解して習得できると思います。

3. 参考コード

class Solution {
public:
    int maxTurbulenceSize(vector<int>& nums) {
        int n=nums.size();
        vector<int> f(n);
        auto g=f;
        f[0]=g[0]=1;
        int fmax=1;
        int gmax=1;
        for(int i=1;i<n;i++)
        {
            int b=nums[i];
            int a=nums[i-1];
            f[i]=a>=b?1:g[i-1]+1;
            g[i]=a<=b?1:f[i-1]+1;
            fmax=max(fmax,f[i]);
            gmax=max(gmax,g[i]);
        }
        return max(fmax,gmax);
    }
};

上記は、動的プログラミングの考え方 を使ってこのトピックを分析するプロセス全体ですが、学習しましたか? 上記の解決策が役に立った場合は、十分に注意してください。今後も動的計画法の古典的な問題を更新し続けます。次号でお会いしましょう!

 

おすすめ

転載: blog.csdn.net/weixin_70056514/article/details/131958494