Сложность: easy
Дан бинарный массив nums и целое число k. Вернуть true, если все единицы находятся на расстоянии не менее k позиций друг от друга, в противном случае вернуть false.
Пример:
Input: nums = [1,0,0,0,1,0,0,1], k = 2
Output: true
Explanation: Each of the 1s are at least 2 places away from each other.
👨💻 Алгоритм:
1⃣Инициализировать счетчик нулей значением k для учета первого появления единицы.
2⃣Итерировать по массиву nums, проверяя, если текущий элемент равен 1. Если число нулей между единицами меньше k, вернуть false; иначе сбросить счетчик нулей на 0.
3⃣Если текущий элемент равен 0, увеличить счетчик нулей. В конце итерации вернуть true.
😎 Решение:
class Solution {
function kLengthApart($nums, $k) {
$count = $k;
foreach ($nums as $num) {
if ($num == 1) {
if ($count < $k) {
return false;
}
$count = 0;
} else {
$count++;
}
}
return true;
}
}Ставь 👍 и забирай 📚 Базу знаний