【问题标题】:Find minimum sum of the list optimally using python使用python以最佳方式查找列表的最小总和
【发布时间】: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


【解决方案1】:

试试这个:

nums = [1,2,3,4]

def fun(L, K):
    return sum([round(i/2) for i in L])

print(fun(nums, 4))

如果您对此语法感到困惑,请参阅list comprehensions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2012-04-18
    • 2016-12-03
    • 2023-03-30
    • 2014-08-23
    • 1970-01-01
    • 2015-06-29
    相关资源
    最近更新 更多