Giả sử chúng ta có một danh sách gọi là nums, chúng ta phải kiểm tra xem liệu chúng ta có thể sắp xếp lại thứ tự của các num theo cách sao cho sự khác biệt giữa mọi cặp hai số liên tiếp là như nhau hay không.
Vì vậy, nếu đầu vào giống như nums =[8, 2, 6, 4], thì đầu ra sẽ là True, bởi vì nếu chúng ta sắp xếp lại các num như [2, 4, 6, 8], thì sự khác biệt giữa hai cặp các số liên tiếp là 2.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
N:=kích thước của nums
-
nếu N <=2, thì
-
trả về True
-
-
sắp xếp số lượng danh sách
-
targetDiff:=nums [1] - nums [0]
-
đối với tôi trong phạm vi từ 2 đến N - 1, hãy thực hiện
-
nếu nums [i] - nums [i - 1] không giống targetDiff thì
-
trả về Sai
-
-
-
trả về True
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
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))
Đầu vào
[8, 2, 6, 4]
Đầu ra
True