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
- nếu arr [low] + arr [high] không giống với k, thì
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