检查是否能重排数组,使得每对元素间的差值相同- Python实现

检查是否能重排数组,使得每对元素间的差值相同- Python实现

假设我们有一个名为nums的列表,我们必须检查是否可以重新排列nums的顺序,使得每对连续两个数字之间的差值相同。

因此,如果输入为nums = [8, 2, 6, 4],则输出将为True,因为如果我们将nums重新排列为[2, 4, 6, 8],则每两对相邻数字之间的差值为2。

要解决这个问题,我们将遵循以下步骤−

  • N:= nums的大小

  • 如果N <= 2,则

    • 返回True
  • 排序列表nums

  • targetDiff:= nums[1]- nums[0]

  • 对于从2到N-1的i,执行以下操作

    • 如果nums[i]-nums[i-1]与targetDiff不同,则
      • 返回False
  • 返回True

示例:

让我们看以下实现以更好地理解

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程