На основе Code Challenge: https://www.hackerrank.com/challenges/plus-minus/problem

От младшего разработчика до младшего разработчика, добро пожаловать в удивительный мир алгоритмов обучения. Если вы старший разработчик… да, мы знаем, что вы классный. Пожалуйста, будь милым… однажды ты был на нашем месте.

Для тех, кто вроде меня, кто больше не хочет быть ничтожеством и амбициозно решил самостоятельно изучать алгоритмы и/или структуры данных с помощью таких платформ, как HackerRank, CodeSignal, Code Wars… позвольте мне начать с того, что… поздравляю! Хорошо, это все, что вы получили на данный момент.

Давайте перейдем к проблеме.

Сначала самое главное:

Я действительно хочу предположить, что вы уже прочитали и поняли проблему на базовом уровне. Если нет, пожалуйста, перейдите по этой классной ссылке вверху, на копирование и вставку которой у меня ушло целых 6 секунд, и внимательно прочитайте ее. Тогда возвращайтесь сюда, и я проведу вас через это алгоритмическое путешествие, как Стив через ваш любимый эпизод «Подсказок Блю».

Отказ от ответственности: это решение должно помочь тем, кто не понимает, понять очень просто и ясно. Это не для того, чтобы увидеть, как вы можете решить эту задачу в одну строку или написать решение гипотезы Ходжа.

Я знаю, что в разделе комментариев все еще будет тот парень

...не будь таким парнем.

РЕШЕНИЕ (Javascript):

Поскольку мы знаем, что у нас могут быть положительные, отрицательные и нулевые числа в массиве, мы создадим переменные, которые будут действовать как счетчики, когда мы начнем определять, сколько каждого из них находится в данном нам массиве. Пока мы не узнаем, сколько каждого из них у нас есть, мы должны установить наши счетчики на 0. Мы также создадим переменную для представления общего количества чисел в заданном массиве, мы назовем эту переменную «totalNums».

Отлично, теперь давайте напишем цикл for, который перебирает каждое число в массиве и выполняет сравнительные действия, чтобы узнать, является ли число положительным, отрицательным или нулевым, а затем увеличивает соответствующий счетчик.

Теперь нам нужно разделить каждый счетчик, представляющий количество положительных, отрицательных и нулевых чисел, найденных в массиве, на общее количество чисел в массиве (aka..totalNums). Давайте также сохраним каждый из них в переменной.

Теперь у нас есть десятичные числа, представляющие дробные значения всех положительных, отрицательных и нулевых чисел по сравнению с общим количеством чисел в массиве. Однако нам нужно сократить количество знаков после запятой всего до шести 6. Как нам это сделать? Мы можем сделать это с помощью встроенного в Javascript метода toFixed() и сообщить ему, сколько знаков после запятой мы хотим иметь. Опять же, мы будем хранить эти значения в переменных.

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

Вот и все. Вы решили это! Теперь вперед, отправь этого плохого парня и получи эти 10 баллов в HackerRank (… или где бы ты ни занимался этой задачей.)

Код полного решения: https://repl.it/@DrewDandrea/PlusMinusSolution

Кстати… ты видел подсказку???