【发布时间】:2019-09-11 06:48:29
【问题描述】:
我试图解决编码挑战,其中指出:
给定一个列表“L”和替换数量“k”。
第 1 步:在第 1 次迭代中,从“L”中找到任意数字,将其减半,然后通过四舍五入将其替换为整数。
第 2 步:重复第 1 步进行“k”这样的操作,最终我们得到列表“L”中所有元素的minimum sum。
例子:
L=[1,2,2,3] k=4
[1,2,2,2] replaced 3 by 2 ( round(3/2)=2)
[1,2,2,1] replaced 2 by 1
[1,2,1,1] replaced 2 by 1
[1,1,1,1] replaced 2 by 1
所以总和是 4 和它的最小值。 注意:数组可能没有排序。
我试过这种方法:
def fun(L,k):
for i in range(k):
L.sort()
num=round(L[-1]/2)
L[-1]=num
return sum(L)
由于时间复杂性,此方法显示“超时”。
有没有最佳的方法来解决这个问题。
【问题讨论】:
-
你能链接到编码挑战吗?另外,为一个有趣的问题 +1
标签: python python-3.x