Count number of monotony changes in array - for e.g.
[6,5,4,1] -> 0
[2,3,4,5] -> 0
[2,3,4,5,6,5,4,1] -> 1
[2,3,4,1,5,6,5] -> 3
Interviewer said my code is wrong, spent lot of time to find out mistakes but couldn't find any edge cases where it will fail. Can anyone help me finding out mistakes.
def monotonic_changes(nums):
n = len(nums)
ans = 0
if n <=2:
return ans
if nums[0] > nums[1]:
dirn = -1
elif nums[0] < nums[1]:
dirn = 1
new_dirn = dirn
for i in range(2,n):
if nums[i] > nums[i-1]:
new_dirn = 1
elif nums[i] < nums[i-1]:
new_dirn = -1
if dirn != new_dirn:
ans+=1
dirn = new_dirn
return ans