Я наткнулся на эту проблему в онлайн -задаче найма.
Найдите позицию 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”