通过给定操作减少列表并在Python中找到最小剩余数的程序
假设我们有一个名为nums的正数列表。现在考虑一个操作,我们删除任意两个值a和b,其中a≤b并且如果a<b是有效的,则将ba重新插入到列表nums中。如果我们可以执行任意数量的操作,我们必须找到我们能得到的最小剩余数量。如果列表变为空,则只需返回0。
所以,如果输入像nums=[2,4,5],那么输出将是1,因为,我们可以选择4和5然后插入回1得到[2,1]。现在选择2和1得到[1]。
示例
让我们看看以下实现以获得更好的理解-
def solve(nums):
s = sum(nums)
def f(i, s):
if i >= len(nums):
return s
n = nums[i]
if s - 2 * n < 0:
return f(i + 1, s)
return min(f(i + 1, s - 2 * n), f(i + 1, s))
return f(0, s)
nums = [2, 4, 5]
print(solve(nums))输入
[2, 4, 5]输出结果
1
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短