在Python中删除列表的给定操作并找到最小的剩余数字的程序
假设我们有一个名为nums的正数列表。现在考虑一种操作,其中我们删除任何两个值a和b,其中a≤b,如果a< b有效,则将b-a重新插入到列表nums中。如果我们可以执行任意数量的操作,我们必须找到我们可以得到的最小剩余数字。如果列表变为空,则简单地返回0。
因此,如果输入为nums =[2,4,5],则输出将为1,因为我们可以选择4和5,然后将1重新插入以获取[2,1]。现在选择2和1以获取[1]。
要解决这个问题,我们将遵循以下步骤−
- s:nums中所有元素的总和
- 定义一个函数f()。这将使用i,s
- 如果i≥nums的大小,则
- 返回s
- n:nums[i]
- 如果s-2 * n<0,则
- 返回f(i + 1,s)
- 返回f(i + 1,s-2 * n)和f(i + 1,s)的最小值
- 从主要方法返回f(0,s)
示例
让我们看一下以下实现,以便更好地理解−