Python程式檢查兩個數字的和是否等於來自排序列表的k
假設我們有一個名為nums的數字列表,並且nums中的元素按升序排序。我們還有另一個值k,我們需要檢查列表中取出的任何兩個元素是否加起來等於k。數字也可以是負數或0。我們需要在恆定的空間使用量下解決此問題。
因此,如果輸入類似於nums = [-8, -3, 2, 7, 9] k = 4,則輸出將為True,因為如果我們取7和-3,則和為7 + (-3) = 4,這與k相同。
為了解決這個問題,我們將遵循以下步驟:
- i := 0
- j := nums的大小 - 1
- 當 i < j 時,執行以下操作:
- cur_sum := nums[i] + nums[j]
- 如果cur_sum與k相同,則
- 返回True
- 否則,當cur_sum < k時,則
- i := i + 1
- 否則,
- j := j - 1
- 返回False
示例
讓我們看看以下實現以更好地理解:
def solve(nums, k): i = 0 j = len(nums) - 1 while i < j: cur_sum = nums[i] + nums[j] if cur_sum == k: return True elif cur_sum < k: i += 1 else: j -= 1 return False nums = [-8, -3, 2, 7, 9] k = 4 print(solve(nums, k))
輸入
[-8, -3, 2, 7, 9], 4
輸出
True
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP