Suppose we have a list called nums, we have to check whether we can rearrange the order of nums in such a way that the difference between every pair of consecutive two numbers is same.
So, if the input is like nums = [8, 2, 6, 4], then the output will be True, because if we rearrange nums like [2, 4, 6, 8], then the difference between every two pair of consecutive numbers is 2.
To solve this, we will follow these steps −
N := size of nums
if N <= 2, then
return True
sort the list nums
targetDiff := nums[1] - nums[0]
for i in range 2 to N - 1, do
if nums[i] - nums[i - 1] is not same as targetDiff, then
return False
return True
Example
Let us see the following implementation to get better understanding
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))Input
[8, 2, 6, 4]
Output
True