牛牛的数列java
原题解链接
牛牛的数列题目
package 算法日常;
public class 牛牛的数列3 {
public static void main(String[] args) {
牛牛的数列3 a = new 牛牛的数列3();
int n [] = {1,2,3,4,56,6,23,10};
a.maxSubArrayLength(n);
}
public int maxSubArrayLength (int[] nums) {
int value = Integer.MAX_VALUE;
int n = nums.length;
int a[] = new int [n+2];
a[0] = value;
a[n+1] = value;
for(int i=1;i<=n;i++) {
a[i]=nums[i-1];
}
int[] preSort = new int[100005];
int[] sufSort = new int[100005];
for(int i=1; i<=n; i++){
preSort[i] = (a[i-1] < a[i])?preSort[i-1]+1:1;
}
for(int i=n; i>=1; i--){
sufSort[i] = (a[i] < a[i+1])?sufSort[i+1]+1:1;
}
int result = 1;
for(int i=1; i<=n; i++){
result = Math.max(preSort[i-1]+1, result);
result = Math.max(sufSort[i+1]+1, result);
if(a[i+1]-a[i-1]>=2){
result = Math.max(result, preSort[i-1]+sufSort[i+1]+1);
}
}
System.out.println(result);
return 1;
}
}