Квест по поиску работы был немного сложным, но интересным! Теперь у меня есть возможность сосредоточиться на алгоритмах, структурах данных, отправке сообщений рекрутерам и моей любимой задаче программирования!

Сегодня я работал над кодовым вызовом, который на Hackerrank считался легким. Это часть курса подготовки к собеседованию. Я не был уверен, как изначально решить вопрос о подсчете долин, однако я начал записывать заданные входные данные и ожидаемые результаты для решения. Этот тест бросил вызов моему подходу к решению алгоритмов с использованием JavaScript.

Первоначально он занимает несколько шагов (скажем, 8), и ваш путь (вверх или вниз), что повлияет на высоту. Когда вы входите в долину и покидаете ее, вы увеличиваете количество введенных долин за заданное количество шагов. Вы хотите вернуть общее количество долин. Я знал, что должен отслеживать высоту, потому что, если высота на единицу ниже долины, а мой следующий путь — вверх, я знал, что покину долину, и, следовательно, увеличу общее количество долин. Было довольно просто записать мой подход, но было не так просто воплотить его в код.

function countingValleys(steps, path) {
//focus on sealevel
let valleys = 0; let elevation = 0;
for (let i = 0; i < steps; i++){
if(path[i] == “D”) {
elevation - - ;
}else {
if (elevation == -1){
valleys++;
}
elevation++
}
}
return valleys
}

Это заняло около 25 минут и, возможно, не самый эффективный способ решить эту проблему, однако он соответствует требованиям! В будущем я постараюсь уменьшить время выполнения моих алгоритмов.