class Solution {
public:
int maxTurbulenceSize(vector<int>& arr) {
int n = arr.size();
int ret = 1;
int left = 0, right = 0;
while (right < n - 1)
{
if (left == right)
{
//两个数字相等
if (arr[left] == arr[left + 1])
{
left++;
}
right++;
}
else//三选一
{
if (arr[right - 1] < arr[right] && arr[right] > arr[right + 1]) {
right++;
} else if (arr[right - 1] > arr[right] && arr[right] < arr[right + 1]) {
right++;
}
else
{ //不符合从right作为起点在开始
left = right;
}
}
ret = max(ret, right - left + 1);
}
return ret;
}
};