Всем привет,

Сегодня я расскажу, как я решил задачу 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}

Прошло!

Надеюсь, всем понравился этот блог. Пожалуйста, поделись своими мыслями. До скорого!