在 Python 中检查两个数字之和的程序是否从排序列表中达到 k
假设我们有一个名为nums的数字列表,并且nums中的元素按升序排序。我们还有另一个值k,我们必须检查从列表中取出的任意两个元素是否加起来为k。数字也可以是负数或0。我们必须以恒定的空间使用量来解决这个问题。
所以,如果输入像nums=[-8,-3,2,7,9]k=4,那么输出将为True,因为如果我们取7和-3,那么总和是7+(-3)=4,与k相同。
示例
让我们看看以下实现以获得更好的理解-
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