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]
对于 i 从 2 到 N - 1 的范围,执行以下操作:
如果 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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP