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