Программа курса:
Разбор задачи: Максимальное количество последовательных
Предложенный нами код решения:
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_count3. Логика решения
- Инициализация переменных:
max_count— переменная для хранения максимального количества подряд идущих единиц. Изначально равна0.current_count— переменная для хранения текущей длины последовательности единиц. Также изначально равна0.
- Проход по списку: Используется цикл
for, чтобы обработать каждый элемент спискаnums. - Условие проверки:
- Если текущий элемент равен
1, увеличиваемcurrent_countна единицу. Затем обновляем значениеmax_count, используя функциюmax, чтобы сравнить текущее значениеmax_countиcurrent_count. - Если текущий элемент равен
0, сбрасываемcurrent_countв0, поскольку последовательность единиц прерывается.
- Если текущий элемент равен
- Возврат результата: После завершения цикла возвращаем
max_count, так как оно содержит максимальное количество подряд идущих единиц.
4. Пример работы функции
Пример 1:
- Ввод:
nums = [1, 1, 0, 1, 1, 1] - Пошаговый процесс:
- Первый элемент
1:current_count = 1,max_count = 1. - Второй элемент
1:current_count = 2,max_count = 2. - Третий элемент
0:current_count = 0,max_count = 2. - Четвёртый элемент
1:current_count = 1,max_count = 2. - Пятый элемент
1:current_count = 2,max_count = 2. - Шестой элемент
1:current_count = 3,max_count = 3.
- Первый элемент
- Вывод:
3.
Пример 2:
- Ввод:
nums = [1, 0, 1, 1, 0, 1] - Пошаговый процесс:
- Первый элемент
1:current_count = 1,max_count = 1. - Второй элемент
0:current_count = 0,max_count = 1. - Третий элемент
1:current_count = 1,max_count = 1. - Четвёртый элемент
1:current_count = 2,max_count = 2. - Пятый элемент
0:current_count = 0,max_count = 2. - Шестой элемент
1:current_count = 1,max_count = 2.
- Первый элемент
- Вывод:
2.
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии