Оптимизация решения Java Hashmap - PullRequest
0 голосов
/ 13 февраля 2019

Мне задали следующий вопрос в интервью по кодированию -

Commissions {
  salesperson: string
  recipient: string
  ratio: float
}

Sales {
  salesperson: string
  sales: float
}

Дано: Список объектов комиссий и список объектов продаж.Каждый продавец может передать процент своего заработка другому продавцу, как указано в полях «Получатель» и «Соотношение».

Найти: Общая сумма, полученная каждым продавцом заего собственные продажи и через комиссию от других.Примечание. Для каждого продавца может быть несколько объектов «Комиссионные»

Мое решение: Я создал объект для общего дохода каждого продавца -

Earning {
  salesperson: string
  earning: float
}

Я создалhashmap с ключом продавца и объекта комиссионных в качестве значения.

Map<String, List<Commissions>> map = new HashMap<>(); 

Итерация по каждому объекту продаж, поиск объектов комиссий с использованием приведенной выше карты и расчет общего дохода каждого продавца.Храните этот заработок в новом объекте Заработок.

Сложность по времени будет O (sales_size * Commissions_for_the_salesman)

Я смог решить проблему и получить правильный заработок для каждого продавца, но хотел быузнать, какие оптимизации в структурах данных, стиле кодирования и алгоритме возможны здесь.Как видно, эта проблема не сложная, так как же выглядит хорошее решение в таком случае?

Я узнал о новых методах Map, таких как putIfAbsent (), replace () и т. Д., Которые делают код кратким, но любые другие предложения будут полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...