Max Consecutive Ones

https://leetcode.com/problems/max-consecutive-onesEasy

Условие

Дан бинарный массив nums (содержащий только 0 и 1). Нужно найти максимальное количество подряд идущих единиц.

Примеры

Input: nums = [1,1,0,1,1,1]

Output: 3

Explanation: Последовательность из трех подряд идущих единиц.
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), так как используется только фиксированное количество дополнительных переменных.