- Существует 3 массива: шахтеры, уровень шахтеров, руды. Шахты
- Каждый шахтер может добывать руду только один раз, но только на уровне шахтеров или ниже
- Что является наибольшим общим количествомруд, которые майнеры могут добывать?
miners = [10, 1, 7, 9, 6, 1, 5, 3, 2, 3]
minersLevel = [9, 2, 4, 5, 1, 9, 2, 4, 2, 7]
oresMined = [7, 9, 9, 4, 8, 7, 10, 4, 10, 8]
output: 96
internally represented as [10, 8, 10, 10, 10, 8, 10, 10, 10, 10] = 96
Q) Как бы я решил эту проблему так, чтобы скорость (наносекунды) была максимально возможной, я мог бы использовать грубую силу между каждым майнером, а затем проверить с помощьюкаждый уровень и отслеживание самого высокого уровня руды до сих пор получают самый высокий в конце, но это будет O (n ^ 2) и будет слишком медленным.
Еще один крайний случай, который я подумал, - это найти самые низкие майнерыLevelк наивысшему oresMined, если это minersLevel = 1 и OresMined = 10, то по умолчанию максимальное значение равно 100, но тогда как бы мне заняться другими уровнями?
Обратите внимание, что сортировка также займет слишком много времени. Массивы обычно имеют длину 10, значения элементов варьируются от 1 до 10.