原题
https://leetcode-cn.com/problems/longest-turbulent-subarray/

思路
首先一定要能看懂题意,然后才能下手
这里我就不做过多的描述了,本来我也是没看懂的,然后看了一位大佬的题解之后才明白
大佬👉 https://leetcode-cn.com/problems/longest-turbulent-subarray/solution/yi-zhang-dong-tu-xiang-jie-dong-tai-gui-wrwvn/
题解
package com.leetcode.code;
/**
* @Description:
* @ClassName: Code978
* @Author: ZK
* @Date: 2021/2/8 22:48
* @Version: 1.0
*/
public class Code978 {
public static void main(String[] args) {
int[] arr = {9,4,2,10,7,8,8,1,9};
System.out.println(maxTurbulenceSize(arr));
}
public static int maxTurbulenceSize(int[] arr) {
int len = arr.length;
int[] down = new int[len];
int[] up = new int[len];
for (int i = 0; i < len; i++) {
down[i] = 1;
up[i] = 1;
}
for (int i = 1; i < len; i++) {
if (arr[i-1] > arr[i]) {
down[i] = up[i-1]+1;
}
if (arr[i-1] < arr[i]) {
up[i] = down[i-1]+1;
}
}
int max = 0;
for (int i = 0; i < len; i++) {
max = Math.max( max, Math.max(up[i], down[i]) );
}
return max;
}
}
本文详细解析LeetCode第978题《最长湍流子数组》的解题方法。通过阅读一位大佬的题解,了解到该问题的关键在于动态规划求解最长连续子数组,使得相邻元素不相等。代码示例使用Java实现,通过维护上坡和下坡子数组的长度来找到最长湍流子数组。
1578

被折叠的 条评论
为什么被折叠?



