Регистрация
3 Дек 2013
Сообщения
64
Репутация
0
Спасибо
0
Монет
0
Есть написанный код, но тест его не принимает, Ограничение времени-1 секунда.

В голову не приходит, как его ускорить? def stones_from_mars(ordered_weights, delivered_weights):

ordered_weights.sort()

delivered_weights.sort()



count = 0

used = set()

for weight in delivered_weights:

j = 0

while j < len(ordered_weights):

if ordered_weights[j]
 
'''
заказ - поставка
поставить не менее заказанного
максимально удовлетворить заказы
'''
order = [8, 5, 5, 8, 6, 9, 8, 2, 4, 7] # заказ
shipment=[9, 8, 1, 1, 1, 5, 10, 8 ] # поставка
order.sort()
shipment.sort()
while shipment[0]order[0]: # подходящий?
result.append((shipment[0],order[0])) # заносим в список вып заказа
order.pop(0) # убираем удовл требование
shipment.pop(0) # убираем проверенный
print('(поставлка, заказ)\n',result)
 
Где текст задачи, которую код должен решить?
 
А что тут ускорять, вычисляется пересечение двух массивов: заказано и получено камней с Марса, если я понял задание

import random

def stones_from_mars(ordered_weights, delivered_weights):
ordered_weights.sort()
delivered_weights.sort()
matches = set(ordered_weights) & set(delivered_weights)

return len(matches), matches
ordered_weights = list(range(1, 21))
delivered_weights = [random.randint(1, 20) for _ in range(20)]

print("Веса заказанных камней:", ordered_weights)
print("Веса доставленных камней:", delivered_weights)

result, matches = stones_from_mars(ordered_weights, delivered_weights)
print("Количество совпадающих заказов и доставок:", result)
print("Список совпадающих заказов и доставок:", matches)
 
Назад
Сверху