2760. 最长奇偶子数组
给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。
请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 <= l <= r < nums.length) 且满足以下条件的 最长子数组 :
以整数形式返回满足题目要求的最长子数组的长度。
注意:子数组 是数组中的一个连续非空元素序列。
示例 1:

示例 2:

示例 3:

提示:
class Solution {
public:
int longestAlternatingSubarray(vector<int>& nums, int threshold) {
int n = nums.size();
int left = 0;
int len = 0;
while(left < n){
while(left < n && (nums[left] % 2 != 0 || nums[left] > threshold)){
++left;
}
if(left == n){
break;
}
int right = left + 1;
while(right < n){
if((nums[right] > threshold) || (nums[right] % 2 == nums[right - 1] % 2)){
break;
}
++right;
}
len = max(len, right - left);
left = right;
}
return len;
}
};
(1) 采用滑动窗口解决,left满足条件,right控制移动,不满足条件后新的left更新成为right即可,且原来符合要求的窗口长度为right - left。