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

Python에서 동일한 각 요소 쌍 사이의 차이를 만들기 위해 배열을 재배열할 수 있는지 확인하는 프로그램

<시간/>

nums라는 목록이 있다고 가정하고 연속된 두 숫자의 모든 쌍 간의 차이가 동일한 방식으로 nums의 순서를 재배열할 수 있는지 확인해야 합니다.

따라서 입력이 nums =[8, 2, 6, 4]와 같으면 출력은 True가 됩니다. 왜냐하면 [2, 4, 6, 8]과 같은 숫자를 재배열하면 연속 숫자는 2입니다.

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

  • N :=숫자 크기

  • N <=2이면

    • 참을 반환

  • 목록 번호 정렬

  • targetDiff :=숫자[1] - 숫자[0]

  • 범위 2에서 N - 1에 있는 i에 대해 수행

    • nums[i] - nums[i - 1]이 targetDiff와 같지 않으면

      • 거짓을 반환

  • 참을 반환

예시

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

def solve(nums):
   N = len(nums)
   if N <= 2:
      return True
   nums.sort()
   targetDiff = nums[1] - nums[0]
   for i in range(2, N):
      if nums[i] - nums[i - 1] != targetDiff:
         return False
   return True

nums = [8, 2, 6, 4]
print(solve(nums))

입력

[8, 2, 6, 4]

출력

True