Алгоритмических задач огромное множество, но есть те, которые известны почти каждому и уже стали вечной классикой. Давайте в эту первую пятницу зимы немного расслабимся и посмотрим на старую знакомую. Повторение — лучший друг учения, к тому же новичкам в индустрии будет полезно.
Сложность: 🟢 Легкая
ℹ️ Описание
Дано целое число n. Напишите функцию, которая принимает в качестве параметра число n и возвращает массив строк answer, который формируется по следующим правилам:
▶️ answer[i] == "FizzBuzz", если i делится одновременно на 3 и 5;
▶️ answer[i] == "Fizz", если i делится только на 3;
▶️ answer[i] == "Buzz", если i делится только на 5;
▶️ answer[i] == i, во всех остальных случаях.
⚠️ Ограничения
Значение n находится в диапазоне от 1 до 10^4.
1️⃣Пример
Входящие данные
3
Ответ
["1", "2", "Fizz"]
2️⃣ Пример
Входящие данные
5
Ответ
["1", "2", "Fizz", "4", "Buzz"]
3️⃣ Пример
Входящие данные
15
Ответ
["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"]
✅ Решение
Для решения задачи нужно запустить цикл от 1 до n и на каждой итерации проверять 4 взаимоисключающих условия. Если условие выполняется, то в результирующий массив добавляется соответсвующая строка.
Посмотреть решение
🅾️ Оценка сложности
По времени
Сложность по времени линейная — O(n), так как мы итерируемся от 1 до n.
По памяти
Сложность по памяти константная — O(1), так как мы не создаем дополнительных переменных. Выходной массив не считается за выделение дополнительной памяти, потому что работа алгоритма от этого не зависит. При выборе любой реализации алгоритма, выходной массив нужно будет сформировать в любом слуае.
#arrays #easy