Syntax error Program to check number of global and local inversions are same or not in Python

Program to check number of global and local inversions are same or not in Python



Suppose we have a list of distinct numbers called nums. Here a global inversion is when there's indices i < j such that nums[i] > nums[j]. And local inversion is when there is an index i and i + 1 such that nums[i] > nums[i + 1]. We have to check whether the number of global inversions is equal to the number of local inversions or not.

So, if the input is like nums = [3, 2, 4], then the output will be True, as the indices 0 and 1 are both a global and local inversion.

To solve this, we will follow these steps −

  • l := size of nums
  • for i in range 0 to l - 3, do
    • for j in range i + 2 to l-1, do
      • if nums[i] > nums[j], then
        • return False
  • return True

Let us see the following implementation to get better understanding −

Example

 Live Demo

class Solution:
   def solve(self, nums):
      l = len(nums)
      for i in range(l - 2):
         for j in range(i + 2, l):
            if nums[i] > nums[j]:
               return False
      return True
ob = Solution()
nums = [3, 2, 4]
print(ob.solve(nums))

Input

[3, 2, 4]

Output

True
Updated on: 2020-11-19T06:30:40+05:30

163 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements