Changing Directions in Python


Suppose we have a list of numbers called nums, we have to find the number of times that the list changes from positive-to-negative or negative-to-positive slope.

So, if the input is like [2, 4, 10, 18, 6, 11, 13], then the output will be 2, as it changes the direction at 10 (positive-to-negative), and then at 6 (negative-to-positive).

To solve this, we will follow these steps −

  • To solve this, we will follow these steps −

  • for i in range 1 to size of nums - 1, do

    • if nums[i-1] < nums[i] > nums[i+1] or nums[i-1] > nums[i] < nums[i+1], then

      • count := count + 1

  • return count

Let us see the following implementation to get better understanding −

Example

 Live Demo

class Solution:
   def solve(self, nums):
      count = 0
      for i in range(1, len(nums) - 1):
         if nums[i - 1] < nums[i] > nums[i + 1] or nums[i - 1] > nums[i] < nums[i + 1]:
            count += 1
      return count

ob = Solution()
print(ob.solve([2, 4, 10, 18, 6, 11, 13]))

Input

[2, 4, 10, 18, 6, 11, 13]

Output

2

Updated on: 02-Sep-2020

562 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements