Если n = 4, m = 3, я должен выбрать 4 элемента (в основном n элементов) из списка от начала и до конца. Ниже приведены примеры списков [17,12,10,2] и [2,11,20,8].
Затем между этими двумя списками я должен выбрать элемент с наибольшим значением, а после этого элемент должен быть удален из исходного списка.
Вышеупомянутый шаг должен быть выполнен m раз и взять сумму элементов с наивысшим значением.
A = [17,12,10,2,7,2,11,20,8], n = 4, m = 3
O / P: 20 + 17 + 12 = 49
Я написал следующий код. Тем не менее, производительность кода не очень хорошая и дает время для большого списка. Не могли бы вы помочь?
A = [17,12,10,2,7,2,11,20,8]
m = 3
n = 4
scoreSum = 0
count = 0
firstGrp = []
lastGrp = []
while(count<m):
firstGrp = A[:n]
lastGrp = A[-n:]
maxScore = max(max(firstGrp), max(lastGrp))
scoreSum = scoreSum + maxScore
if(maxScore in firstGrp):
A.remove(maxScore)
else:
ai = len(score) - 1 - score[::-1].index(maxScore)
A.pop(ai)
count = count + 1
firstGrp.clear()
lastGrp.clear()
print(scoreSum )