Минимальное количество операций для массива чисел, чтобы все они были равны одному числуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Минимальное количество операций для массива чисел, чтобы все они были равны одному числу

Сообщение Anonymous »

У вас есть один массив чисел, например [2, 5, 1]. У вас есть второй массив чисел, например [8, 4, 3]. Сколько операций потребуется для каждого числа во втором массиве, чтобы все числа первого массива стали равны этому числу? Увеличивать или уменьшать можно только на 1 за раз.

Код: Выделить всё

To get to 8, it would take (8-2)+(8-5)+(8-1)=16 operations.
To get to 4, it would take (4-2)+(5-4)+(4-1)=6 operations.
To get to 3, it would take (3-2)+(5-3)+(3-1)=5 operations.
So the answer would be [16, 6, 5].
Мне удалось сделать это в одну строку:

Код: Выделить всё

answer = [sum(abs(x-y) for x in a1) for y in a2]
Но это было недостаточно быстро, поскольку массивы могут содержать до 105 элементов. Как мне сделать это быстрее?

Подробнее здесь: https://stackoverflow.com/questions/790 ... one-number
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»