程序检查我们能否找到三个唯一元素,其和是否与 k 相同 Python
pythonserver side programmingprogramming更新于 2026/2/4 5:00:17
假设我们有一个名为 nums 的数字列表和另一个值 k,我们必须检查我们是否可以在列表中找到三个唯一元素,其和为 k。
因此,如果输入为 nums = [11, 4, 6, 10, 5, 1] k = 20,则输出将为 True,因为我们有数字 [4,6,10],其和为 20。
为了解决这个问题,我们将遵循以下步骤 −
对列表 nums 进行排序
l := 0, r := nums 的大小 − 1
while 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

