Определить самое большое кол-во подряд идущих 1 и вывести индексы начала и конца этого диапазона - C#
Формулировка задачи:
Дан массив, состоящий из 0 и 1. определить самое большое кол-во подряд идущих 1 и вывести индексы начала и конца этого диапазона.
помогите написать условия, продолжение программы. Как найти наибольший диапазон?
Решение задачи: «Определить самое большое кол-во подряд идущих 1 и вывести индексы начала и конца этого диапазона»
textual
Листинг программы
int p = 10;
int[] M = new int[p];
Random R = new Random();
for (int i = 0; i < p; i++)
Console.Write(M[i] = R.Next(2));
int left = 0, count = 0, l = 0, c = 0;
for (int i = 0; i <= p; i++)
{
// Если встретили ноль, то обрываем последовательность
if (i == p || M[i] == 0)
{
if (c > count)
{
count = c;
left = l;
}
l = i + 1;
c = 0;
}
else c++;
}
Console.WriteLine();
Console.WriteLine(count == 0 ? "нет единиц" :
$"максимум {count} на {left}..{left + count - 1}");
Console.ReadLine();