用 Python 编写程序检查已排序列表中两个数字之和是否等于 k
pythonserver side programmingprogramming更新于 2026/1/5 9:16:17
假设我们有一个名为 nums 的数字列表,nums 中的元素按升序排序。我们还有另一个值 k,我们必须检查从列表中取出的任何两个元素之和是否等于 k。数字也可以是负数或 0。我们必须在恒定的空间使用量内解决这个问题。
因此,如果输入为 nums = [-8, -3, 2, 7, 9] k = 4,则输出将为 True,因为如果我们取 7 和 -3,则总和为 7 + (-3) = 4,与 k 相同。
为了解决这个问题,我们将遵循以下步骤 −
- i := 0
- j := size of nums - 1
- while 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

