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
廣告