【978.最长湍流子数组】

目录

  • 一、题目描述
  • 二、算法原理
  • 三、代码实现

一、题目描述

【978.最长湍流子数组】_第1张图片

二、算法原理

【978.最长湍流子数组】_第2张图片

三、代码实现

class Solution {
public:
    int maxTurbulenceSize(vector<int>& arr) 
    {
        
        int n=arr.size();
        vector<int> f(n),g(n);
        f[0]=g[0]=1;
        if(n==1) return 1;
        int ret=max(f[0],g[0]);
        for(int i=1;i<n;i++)
        {
            if(arr[i]>arr[i-1]) 
            {
                f[i]=g[i-1]+1;
                g[i]=1;
            }
            else if(arr[i]<arr[i-1])
            {
                g[i]=f[i-1]+1;
                f[i]=1;
            }
            else    f[i]=g[i]=1;
            ret=max(ret,max(f[i],g[i]));
        }
        return ret;

    }
};

你可能感兴趣的:(动态规划,算法,动态规划,c++,leetcode)