程序将集合分成相等的总和集合,其中第一个集合中的元素小于Python中的第二个
假设我们有一个称为nums的数字列表,我们必须检查是否可以将列表分为A和B两类,以便:A的总和与B的总和相同。这里,A中的每个数字都严格小于B中的每个数字。
因此,如果输入像nums=[3,4,5,12],则输出将为True,因为我们可以让A=[3,4,5]和B=[12]且总和为12。
为了解决这个问题,我们将遵循以下步骤-
排序列表编号
总计:=所有元素的总和
s:=0,i:=0
当我<nums的大小,
返回True
s:=s+数字[i]
我:=我+1
n:=nums[i]
当i<nums的大小和nums[i]与n相同时,
如果s与total-s相同,则
返回False
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, nums):
nums.sort()
total = sum(nums)
s = 0
i = 0
while i < len(nums):
n = nums[i]
while i < len(nums) and nums[i] == n:
s += nums[i]
i += 1
if s == total - s:
return True
return False
ob = Solution()nums = [3, 4, 5, 12]
print(ob.solve(nums))输入值
[3, 4, 5, 12]
输出结果
True
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短