Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem một mảng đã sắp xếp có thể được chia thành từng cặp có tổng là k trong Python hay không

Giả sử chúng ta có một mảng số và có một số khác k, chúng ta phải kiểm tra xem mảng đã cho có thể được chia thành các cặp sao cho tổng của mọi cặp là k hay không.

Vì vậy, nếu đầu vào là arr =[1, 2, 3, 4, 5, 6], k =7, thì đầu ra sẽ là True vì chúng ta có thể lấy các cặp như (2, 5), (1, 6) và (3, 4).

Để 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 arr
  • nếu n lẻ, thì
    • trả về Sai
  • thấp:=0, cao:=n - 1
  • while low
  • nếu arr [low] + arr [high] không giống với k, thì
    • trả về Sai
  • thấp:=low + 1
  • cao:=cao - 1
  • trả về True
  • Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    Ví dụ

    def solve(arr, k):
       n = len(arr)
       if n % 2 == 1:
          return False
       low = 0
       high = n - 1
       while low < high:
          if arr[low] + arr[high] != k:
             return False
          low = low + 1
          high = high - 1
       return True
    arr = [1, 2, 3, 4, 5, 6]
    k = 7
    print(solve(arr, k))

    Đầu vào

    [1, 2, 3, 4, 5, 6], 7

    Đầu ra

    True