Longest Mountain in Array LeetCode solution in JavaScript
1var longestMountain = function (arr) {2let len = arr.length;3let climbUp = false;4let climbDown = false;5let countUp = 0;6let countDown = 0;7let distance = 0;8let max = 0;9if (len < 3) {10return 0;11}12for (i = 0; i < len; i++) {13if (arr[i - 1] < arr[i]) {14countUp++;15climbUp = true;16} else if (arr[i - 1] > arr[i] && climbUp) {17countDown++;18climbDown = true;19}20if (21(arr[i - 1] >= arr[i] && arr[i] <= arr[i + 1]) ||22(i == len - 1 && climbDown == true)23) {24distance = countUp + countDown + 1;25if (max < distance && climbUp && climbDown) {26max = distance;27}28countUp = 0;29countDown = 0;30climbUp = false;31climbDown = false;32}33if (arr[i + 1] == arr[i]) {34climbUp = false;35climbDown = false;36}37}38return max < 3 ? 0 : max;39};