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