Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình kiểm tra có thể sắp xếp mảng thành cấp số cộng không trong Python

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))

  1. Nếu độ dài ≤ 2: luôn
  2. Sắp xếp
  3. Tính
  4. Kiểm tra mọi cặp liên tiếp: nếu →
  5. 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