170 похожих чатов

Всем привет, я решил вернуться к базе и закрепить в

лишний раз.

Есть задача, а звучит она так :
-"Напишите программу, которая получает бинарный массив и считывает максимальное количество встречающее в нём количество единиц.".

Так как решил вернуться к базе, решил всё это запихать в вектор, создал тестики и итерировался. Время в 4 секунды на решение обычного массива мне не по-душе.

Кто из вас сможет подсказать, как можно укоротить его оставив читабельность и укоротить количество написанного кода и в должной мере ускорить его?

int findMaxConsecutiveOnes(std::vector<int>& nums) {
int count{0}, max{0};
for(std::size_t i = 0; i <= nums.size(); ++i){
if(nums[i] != 0){
++count;
} else if(max <= count){
max = count;
count = 0;
}
}
return max;
}

9 ответов

16 просмотров

максимальное подряд идущих я так понимаю? ну твой код segfault должен дать из-за i <= nums.size(). if(nums[i] != 0) - проверка бессмысленна. Ну и быстрее, чем за O(N) сделать все равно не получится. А так - ну цикл поменять for (int num : nums) { count += num; if (max <= count) { max = count; count = 0; } }

Можешь распараллелить его, но читабельность пострадает

Собери релиз

пардон, я насчет проверки Не равно нулю не прав был. но в плане цикла и границ - мне кажется прав )

а ты точно понял правильно, что такое "бинарный массив"?

Zigzag-Hax Автор вопроса
Anatoly Shirokov
а ты точно понял правильно, что такое "бинарный ма...

Другими словами хотел облегчить себе написание "массив состоящий из 1 и 0"

Zigzag-Hax Автор вопроса
Сергей
максимальное подряд идущих я так понимаю? ну твой ...

Там в любом случае мы не выходим за границы массива и учтём то, что в конце может быть так же единица, которую он должен будет считать

Zigzag Hax
Там в любом случае мы не выходим за границы массив...

аргументируй. при каких условиях ты не обратишься к nums[nums.size()] ?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта