Leetcode 2316 Solution

This article provides solution to leetcode question 2316 (count-hills-and-valleys-in-an-array)

https://leetcode.com/problems/count-hills-and-valleys-in-an-array

Solution

class Solution:
    def countHillValley(self, nums: List[int]) -> int:
        direction = 0
        curr_cnt = 0
        next_direction = 0

        ans = 0
        for i in range(len(nums) - 1):
            if nums[i] < nums[i + 1]:
                next_direction = 1
            elif nums[i] > nums[i + 1]:
                next_direction = -1

            if direction * next_direction == -1:
                ans += 1

            direction = next_direction

        return ans