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