Python程序检查列表中是否存在四个元素之和等于k
假设我们有一个名为nums的数字列表和一个值k,我们需要检查列表中是否存在四个唯一元素的和等于k。
因此,如果输入类似于nums = [11, 4, 6, 10, 5, 1] k = 25,则输出将为True,因为我们有[4, 6, 10, 5],其和为25。
为了解决这个问题,我们将遵循以下步骤:
对列表nums进行排序
n := nums的大小
对于i从0到n-4,执行:
对于j从i+1到n-3,执行:
l := j+1, h := nums的大小-1
当l < h时,执行:
summ := nums[i] + nums[j] + nums[l] + nums[h]
如果summ等于k,则:
返回True
否则,如果summ < k,则:
l := l + 1
否则:
h := h - 1
返回False
让我们看看下面的实现,以便更好地理解:
示例
class Solution: def solve(self, nums, k): nums.sort() n = len(nums) for i in range(n - 3): for j in range(i + 1, n - 2): l, h = j + 1, len(nums) - 1 while l < h: summ = nums[i] + nums[j] + nums[l] + nums[h] if summ == k: return True elif summ < k: l += 1 else: h −= 1 return False ob1 = Solution() nums = [11, 4, 6, 10, 5, 1] k = 25 print(ob1.solve(nums, k))
输入
[11, 4, 6, 10, 5, 1], 25
输出
True
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP