Python

Помогите с задачей, никак не могу понять, как именно писать код

Вводится массив целых чисел. Найти максимальное кол-во ненулевых элементов, расположенных между нулевыми элементами массива
 a = [i for i, v in enumerate(input().split()) if int(v) == 0]
if len(a) < 2: print('Недостаточно нулевых элементов')
else: print(max(a[i] - a[i - 1] - 1 for i in range(1, len(a))))
Максим Жаров
Максим Жаров
76 146
Лучший ответ
Вот пример кода для решения данной задачи на языке Python:

# Вводим массив целых чисел
arr = list(map(int, input().split()))

# Инициализируем переменные для хранения индексов нулевых элементов
left_zero_index = -1
right_zero_index = len(arr)

# Инициализируем переменную для хранения максимального кол-ва ненулевых элементов
max_nonzero_count = 0

# Проходим по массиву и ищем нулевые элементы
for i in range(len(arr)):
if arr[i] == 0:
# Если это первый нулевой элемент, то сохраняем его индекс в left_zero_index
if left_zero_index == -1:
left_zero_index = i
# Если это не первый нулевой элемент, то считаем кол-во ненулевых элементов между ним и предыдущим нулевым элементом
else:
nonzero_count = i - left_zero_index - 1
# Если кол-во ненулевых элементов больше максимального, то обновляем максимальное значение
if nonzero_count > max_nonzero_count:
max_nonzero_count = nonzero_count
# Сохраняем индекс текущего нулевого элемента в left_zero_index
left_zero_index = i
# Если правый нулевой элемент не найден, то все ненулевые элементы после последнего нулевого элемента являются кандидатами на максимальное количество
if left_zero_index < right_zero_index:
nonzero_count = right_zero_index - left_zero_index - 1
if nonzero_count > max_nonzero_count:
max_nonzero_count = nonzero_count

# Выводим максимальное количество ненулевых элементов
print(max_nonzero_count)
Пример входных данных и соответствующего вывода:

Входные данные:
1 0 2 3 0 0 4 5
Вывод:
2

Входные данные:
1 2 3 0 0 0 4 5
Вывод:
0

Входные данные:
0 1 0 2 0 0 3 4
Вывод:
1
Надеюсь, это поможет!
Создаем массив и заполняем его числами.
Например:
int[] arr = new int[10];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[4] = 0;
arr[5] = 4;
arr[6] = 5;
arr[7] = 0;
arr[9] = 6;

Находим индексы нулевых элементов. Запишем их в список indexes.
List<int> indexes = new List<int>();
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == 0)
indexes.Add(i);
}

Обнулим счетчик ненулевых элементов.
int maxCount = 0;

Пройдем массив по индексам нулей.
for (int i = 0; i < indexes.Count - 1; i++)
{
int count = 1;
for (int j = indexes[i] + 1; j < indexes[i + 1]; j++)
{
if (arr[j] != 0)
count++;
}
maxCount = Math.Max(maxCount, count);
}

Выведем результат.
Console.WriteLine(maxCount);

В нашем примере выведется 3.