Python程式:檢查是否存在三個唯一元素其和等於k
假設我們有一個名為nums的數字列表和另一個值k,我們需要檢查是否可以在列表中找到三個唯一元素,其和等於k。
例如,如果輸入為nums = [11, 4, 6, 10, 5, 1] k = 20,則輸出為True,因為我們有數字[4, 6, 10],其和為20。
為了解決這個問題,我們將遵循以下步驟:
對列表nums進行排序
l := 0, r := nums的大小 - 1
當l < r - 1時,執行以下操作:
t := k - nums[l] - nums[r]
如果nums[r - 1] < t,則
l := l + 1
跳出迴圈
對於m在l + 1到r的範圍內,執行以下操作:
如果nums[m] > t,則
r := r - 1
跳出迴圈
如果nums[m]等於t,則
返回True
返回False
讓我們看看下面的實現以更好地理解:
示例
class Solution: def solve(self, nums, k): nums.sort() l, r = 0, len(nums) − 1 while l < r − 1: t = k − nums[l] − nums[r] if nums[r − 1] < t: l += 1 continue for m in range(l + 1, r): if nums[m] > t: r −= 1 break if nums[m] == t: return True return False ob1 = Solution() nums = [11, 4, 6, 10, 5, 1] k = 20 print(ob1.solve(nums, k))
輸入
[11, 4, 6, 10, 5, 1], 20
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP