Python 中檢查排序陣列是否可以分成對,且每對的和為 k
假設我們有一個數字陣列和另一個數字 k,我們需要檢查給定的陣列是否可以分成幾對,使得每對的和都為 k。
因此,如果輸入類似於 arr = [1, 2, 3, 4, 5, 6],k = 7,則輸出將為 True,因為我們可以取 (2, 5)、(1, 6) 和 (3, 4) 這樣的對。
為了解決這個問題,我們將遵循以下步驟:
- n := arr 的大小
- 如果 n 為奇數,則
- 返回 False
- low := 0,high := n - 1
- 當 low < high 時,執行
- 如果 arr[low] + arr[high] 不等於 k,則
- 返回 False
- low := low + 1
- high := high - 1
- 如果 arr[low] + arr[high] 不等於 k,則
- 返回 True
讓我們看看以下實現,以便更好地理解:
示例
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))
輸入
[1, 2, 3, 4, 5, 6], 7
輸出
True
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP