对于每个起点,都是x,x+1,x,x+1....这样的循环,那么枚举每个起点模拟即可 ;
class Solution {
public int alternatingSubarray(int[] nums) {
int ans = 0-1 ;
int n = nums.length , i = 0 ;
while(i < n - 1){
if(nums[i+1] - nums[i] != 1){
i ++;
continue ;
}
int i0 = i ;
i += 2 ;
while(i < n && nums[i] == nums[i-2]){
i++ ;
}
// 从i0到i-1是满足题目要求的
ans = Math.max(ans , i - i0) ;
i -- ;
}
return ans ;
}
}