Count Hills and Valleys in an Array LeetCode solution in JavaScript
1var countHillValley = function (nums) {2let previous;3let count = 0;4for (let i = 0; i < nums.length; i++) {5if (previous === undefined) {6previous = i;7continue;8}9if (nums[i - 1] === nums[i]) {10continue;11}12let nextCheck = i + 1;13while (nums[nextCheck] === nums[i]) {14nextCheck++;15}16if (nums[i] > nums[previous] && nums[i] > nums[nextCheck]) {17count++;18}19if (nums[i] < nums[previous] && nums[i] < nums[nextCheck]) {20count++;21}22previous = i;23i = nextCheck - 1;24}25return count;26};