题目
结果
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| class Solution { public int longestMountain(int[] A) { if (A.length == 0) { return 0; } int[] mountain = new int[A.length]; for (int i = 0; i < mountain.length; i++) { mountain[i] = length(A, i); } Arrays.sort(mountain); return mountain[A.length - 1]; }
private int length(int[] A, int index) { if (index == 0 || index == A.length - 1) { return 0; } if (A[index - 1] >= A[index] || A[index + 1] >= A[index]) { return 0; } int length = 1; for (int i = index - 1; i >= 0; i--) { if (A[i] < A[i + 1]) { length++; } else { break; } } for (int i = index + 1; i < A.length; i++) { if (A[i] < A[i - 1]) { length++; } else { break; } } return length; } }
|
复杂度
时间复杂度:O(n²),实际一定比n²小,但又比n大一些
空间复杂度:O(n)