Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 전역 및 로컬 반전 수가 동일한지 여부를 확인하는 프로그램

<시간/>

nums라고 하는 고유한 숫자 목록이 있다고 가정합니다. 여기서 전역 반전은 nums[i]> nums[j]와 같은 인덱스 i nums[i + 1]과 같은 인덱스 i와 i + 1이 있을 때입니다. 전역 역전 횟수가 로컬 역전 횟수와 같은지 확인해야 합니다.

따라서 입력이 nums =[3, 2, 4]와 같으면 인덱스 0과 1이 전역 및 로컬 반전이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • l :=숫자 크기
  • 0 ~ l - 3 범위의 i에 대해
    • i + 2 ~ l-1 범위의 j에 대해
      • 숫자[i]> 숫자[j]이면
        • 거짓을 반환
  • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

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

입력

[3, 2, 4]

출력

True