Max Consecutive Ones
https://leetcode.com/problems/max-consecutive-ones | Easy |
Условие
Дан бинарный массив nums (содержащий только 0 и 1). Нужно найти максимальное количество подряд идущих единиц.
Примеры
Input:
nums = [1,1,0,1,1,1]Output:
3Explanation:
Последовательность из трех подряд идущих единиц.
Input:
nums = [1,0,1,1,0,1]Output:
2
Решение
fun findMaxConsecutiveOnes(nums: IntArray): Int {
var maxCount = 0
var currentCount = 0
for (num in nums) {
if (num == 1) {
currentCount++ // Увеличиваем текущий счетчик для последовательных единиц
maxCount = maxOf(maxCount, currentCount) // Обновляем максимум, если нужно
} else {
currentCount = 0 // Сбрасываем текущий счетчик при встрече с нулем
}
}
return maxCount
}
Временная сложность
O(n), где n — длина массива nums, так как мы проходим по массиву один раз.
Пространственная сложность
O(1), так как используется только фиксированное количество дополнительных переменных.