Cho danh sách nums. Kiểm tra có thể sắp xếp lại thành cấp số cộng (hiệu giữa các cặp liên tiếp bằng nhau) hay không.
Ví dụ: → (sắp xếp thành [2,4,6,8], công sai = 2).
Thuật toán giải quyết (O(n log n))
- Nếu độ dài ≤ 2: luôn
- Sắp xếp
- Tính
- Kiểm tra mọi cặp liên tiếp: nếu
→ - Trả về
Ví dụ minh họa
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