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