Доброго времени!
Хотел порешать задачки от яндекса и столкнулся со странной проблемой.
В задаче необходимо найти в бинарном векторе самую длинную последовательность единиц и вывести её длину.
Желательно получить решение, работающее за линейное время и при этом проходящее по входному массиву только один раз.
Тесты проходят на node.js
Формат ввода
Первая строка входного файла содержит одно число n, n ≤ 10000. Каждая из следующих n строк содержит ровно одно число — очередной элемент массива.
Формат вывода
Выходной файл должен содержать единственное число — длину самой длинной последовательности единиц во входном массиве.
Пример
строки на входе
5
1
0
1
0
1
на выходе
1
Вроде как я задачу решил верно, выдается максимальное кол-во вхождений 1 в массиве, но по какой то причине выдается ошибка. На входе я принимаю строки и закидываю их в массив, и на выход выдаю число в виде строки для чтения в
stdout.write()
Задача
Сам яндекс увы пока не отвечает.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin
});
let lines = [];
rl.on('line', (line) => {
lines.push(line);
}).on('close', () => {
function num(arr){
let arrE = [0];
for(let i=0; i<arr.length; i++){
if(arr[i] === 1 ){
arrE[arrE.length-1]++;
} else{
arrE.push(0);
}
}
retrun arrE.sort().pop();
}
process.stdout.write(JSON.stringify(num(lines)));
});