超过时间限制。怎么了?

时间:2020-08-09 05:06:34

标签: python

给出一个整数数组,最多执行K个运算,以便最终数组的元素总数最小。操作定义如下-

考虑数组arr[i]中的任何1个元素。

arr[i]替换为floor(arr[i]/2)

对更新后的数组执行下一步操作。

任务是在最多K个操作之后使总和最小化。 输入

4 3

20 7 5 4

输出

17

说明

操作1->选择20.替换为10。

新数组= [10, 7, 5, 4]

操作2->选择10。将其替换为5。

新数组= [5, 7, 5, 4]

操作3->选择7。将其替换为3。

新数组= [5,3,5,4]

总和= 17。

这就是我尝试过的

a,b= input().split(" ")
  
n=int(a)
k=int(b)
arr=list(map(int,input().split()))

arr.sort(reverse=True)
i=0
while k>0 and i<n:
  if arr[i]<0:
    i+=1
  else:
    arr[i]=arr[i]//2
    k-=1
    if max(arr)!=arr[i]:
      i+=1
    

print(sum(arr),end="")


1 个答案:

答案 0 :(得分:-1)

我可以看到除法运算符arr[i]=arr[i]**//**2中的错字