Дан массив элементов, которые состоят из нулей и единиц. Нужно вернуть длину максимальной последовательности единиц.
Пример
Ввод: [1,1,0,1,1,1]
Вывод: 3
Ввод: [1,0,1,1,0,1]
Вывод: 2
Решение
public class MaxConsecutiveOnes { public static void main(String[] args) { System.out.println(findMaxConsecutiveOnes(new int[]{1, 1, 0, 1, 1, 1}) == 3); System.out.println(findMaxConsecutiveOnes(new int[]{1, 0, 1, 1, 0, 1}) == 2); } public static int findMaxConsecutiveOnes(int[] nums) { int lastConsequence = 0; int currentConsequence = 0; boolean prevElementIsOne = false; for (int i = 0; i <= nums.length - 1; i++) { int current = nums[i]; if (current == 1) { currentConsequence++; prevElementIsOne = true; } else { if (prevElementIsOne) { // последовательность оборвалась if (currentConsequence >= lastConsequence) { lastConsequence = currentConsequence; } currentConsequence = 0; prevElementIsOne = false; } } } return Math.max(currentConsequence, lastConsequence); } }
Максимальная последовательность в массиве