Рубрики
Без рубрики

Python Programming Challenge

Поиск минимальной разницы между продуктом левого и правого субрайей. Tagged with Python, Challenge, обсудить.

Я наткнулся на эту проблему в онлайн -задаче найма.

Найдите позицию X в массиве A состоящий из N Элементы, так что разница между [0] x a [1] x … x a [x] и a [x+1] x a [x+2] x … x a [n-1] это Минимальный Анкет

Как бы вы подходили к этой проблеме вовремя, так и космическим способом?

У меня было два массива левой и rightarr Это хранит левый и правый продукт Subarray для каждого элемента в массиве A.

Затем я создал еще один массив разница Чтобы сохранить абсолютную разницу между соответствующими элементами в левой карты и rightarr Анкет

Я использовал index () а также min () Функция, чтобы найти индекс наименьшего элемента в массиве различий.

Результат: Предел памяти превышен! (Почти для всех тестовых случаев, кроме 2)

Я обнаружил, что два массива продуктов являются избыточными.

На этот раз, вместо того, чтобы хранить продукт в массивах, я использовал две переменные левый продукт и Правильный Продукт Анкет

Я избавился от разница Массив тоже и вместо этого был новый Mindiff а также Mindiffindex переменные, чтобы найти минимальную разницу и это индекс.

Первоначально я рассчитал продукт всего массива и сохранил его в Правильный Продукт Анкет

Затем я повторил массив еще раз, и на каждой остановке я умножал текущий номер на левый продукт и разделил Правильный Продукт Анкет

Одновременно я рассчитал разницу и сохранил индекс, если было обнаружено, что разница меньше, чем Mindiff Анкет

Наконец, я напечатал Mindiffindex Анкет

Результат: Требование по времени превышен! (Для тех же тестовых случаев)

После того, как я безуспешно, я сдался и пришел к разработке, чтобы попросить лучшие подходы и предложения.

Если у вас есть лучший подход, прокомментируйте ниже!

Ваше здоровье!

Оригинал: “https://dev.to/subsr97/python-programming-challenge-1575”