Лучшие помощники
img

anzhilic

user-author-icon-1
Рейтинг за ответы0
user-author-icon-2
Зарегистрирован: 14 марта 2023 08:20
Для решения данной задачи можно использовать алгоритм двух указателей (two pointers). Сначала необходимо отсортировать массив банков по расстоянию от начала улицы (Xi). Затем можно пройти по массиву с двух концов с помощью двух указателей (left и right), начиная с самых дальних банков. На каждом шаге необходимо проверять, что расстояние между банками (Xi - Xj) не меньше d. Если это условие выполняется, то можно суммировать деньги в обоих банках (Wi + Wj) и сравнить с максимальной суммой, найденной до этого. Если текущая сумма больше, то обновляем максимальную сумму. Алгоритм завершается, когда указатели встретятся. В этом случае будет найдена максимальная сумма денег в паре банков, удовл
0
·
Хороший ответ
15 марта 2023 10:14