Всем привет,
Сегодня я расскажу, как я решил задачу Hacker Rank, Электронный магазин с помощью JavaScript.
Цель: человек хочет определить самую дорогую компьютерную клавиатуру и USB-накопитель, которые можно купить с ограниченным бюджетом. Учитывая прайс-листы на клавиатуры и USB-накопители, а также бюджет, найдите стоимость их покупки. Если невозможно купить оба предмета, верните -1.
Предоставляются следующие параметры: клавиатуры, диски и b (бюджет). Я создал переменную maxEquip, чтобы отслеживать самое дорогое оборудование в рамках предоставленного бюджета, и установил для нее значение -1, значение, возвращаемое, если ни одно из оборудования (1 клавиатура, 1 диск) ) находится в пределах бюджета.
Затем я создал переменные k и d и установил их в ноль. Это будет использоваться для наших циклов for.
Сначала я создаю цикл for для массива цен на клавиатуру. Я хочу взять каждую цену в массиве и добавить ее к каждому отдельному диску, чтобы увидеть, находится ли общая сумма в пределах бюджета.
Для этого требуется добавить внутренний итератор для перебора массива приводных цен. В этом цикле for я использую оператор if, который добавляет цену клавиатуры к стоимости диска. Если она находится в пределах бюджета и больше, чем самое дорогое оборудование, отслеживаемое в переменной maxEquip, чем сохранить это новое количество в нашей переменной maxEquip.
Это позволит мне вернуть самое дорогое оборудование или вернуть -1, если ни одно из этих требований не выполнено. Это мой последний код:
function getMoneySpent(keyboards, drives, b) { /* * Write your code here. */ let maxEquip = -1; let k = 0; let d = 0; for (k=0; k < keyboards.length; k++) { for (d=0; d < drives.length; d++) { if (keyboards[k] + drives[d] <= b && keyboards[k] + drives[d] > maxEquip) { maxEquip = keyboards[k] + drives[d]; }}} return maxEquip}
Прошло!
Надеюсь, всем понравился этот блог. Пожалуйста, поделись своими мыслями. До скорого!