Разбор задачи: Максимальное количество последовательных

Предложенный нами код решения:

def find_max_consecutive_ones(nums):
    """
    :param nums: список, содержащий только 0 и 1
    :return: максимальное количество подряд идущих единиц
    """
    max_count = 0  # Максимальная длина последовательности
    current_count = 0  # Текущая длина последовательности

    for num in nums:
        if num == 1:
            current_count += 1
            max_count = max(max_count, current_count)
        else:
            current_count = 0

    return max_count

3. Логика решения

  1. Инициализация переменных:
    • max_count — переменная для хранения максимального количества подряд идущих единиц. Изначально равна 0.
    • current_count — переменная для хранения текущей длины последовательности единиц. Также изначально равна 0.
  2. Проход по списку: Используется цикл for, чтобы обработать каждый элемент списка nums.
  3. Условие проверки:
    • Если текущий элемент равен 1, увеличиваем current_count на единицу. Затем обновляем значение max_count, используя функцию max, чтобы сравнить текущее значение max_count и current_count.
    • Если текущий элемент равен 0, сбрасываем current_count в 0, поскольку последовательность единиц прерывается.
  4. Возврат результата: После завершения цикла возвращаем max_count, так как оно содержит максимальное количество подряд идущих единиц.

4. Пример работы функции

Пример 1:

  • Ввод: nums = [1, 1, 0, 1, 1, 1]
  • Пошаговый процесс:
    1. Первый элемент 1: current_count = 1, max_count = 1.
    2. Второй элемент 1: current_count = 2, max_count = 2.
    3. Третий элемент 0: current_count = 0, max_count = 2.
    4. Четвёртый элемент 1: current_count = 1, max_count = 2.
    5. Пятый элемент 1: current_count = 2, max_count = 2.
    6. Шестой элемент 1: current_count = 3, max_count = 3.
  • Вывод: 3.

Пример 2:

  • Ввод: nums = [1, 0, 1, 1, 0, 1]
  • Пошаговый процесс:
    1. Первый элемент 1: current_count = 1, max_count = 1.
    2. Второй элемент 0: current_count = 0, max_count = 1.
    3. Третий элемент 1: current_count = 1, max_count = 1.
    4. Четвёртый элемент 1: current_count = 2, max_count = 2.
    5. Пятый элемент 0: current_count = 0, max_count = 2.
    6. Шестой элемент 1: current_count = 1, max_count = 2.
  • Вывод: 2.

 


0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии