Facebook | Phone Screen | Monotony Change
Anonymous User
1487

Facebook | Phone Screen | Monotony Changes

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
    
Comments (7)