1004. Max Consecutive Ones III. 1004. Максимум последовательных единиц III. Задача на Литкоде - leetcode.com/problems/max-con... Код - github.com/IhorPeresunko/YouT...
Спасибо за коммент. Обращать внимание на runtime или space нет смысла, с тем же кодом я получал и 10%, и 95%. Эта фича очень плохо работает. Чтобы проверить это, можете попробовать засабмитить код других людей, которые набирали 100% (я так делал, и 100% не получал). И еще это от языка зависит, тот же алгоритм на С может выполнится за 0мс (втф), и вам покажут 100%. Главное это BigO. И если хотите проверить себя - идите в discussion, и читайте код других людей. Там всегда можно найти чему поучиться.
А почему чаще python3 для литкода? Там вроде можно даже typescript выбрать или го? Задач под python больше? например ts/js на бэке довольно сильно по синтаксису отличается от питона, но на собесах все равно питон решать придется? типа в яндексе только на питоне собесы?
В фанге, как правило, ты сам выбираешь язык на котором будешь решать задачи (он не должен быть таким же как на будущей работе). Python выбирают чаще из-за простоты и широкой встроенной библиотеки (бинарный поиск, очереди, хипы... чего в JS ты не найдешь).
А что если у нас сабмассив где-то посередине состоит из 10 элементов, а тот который в конце (когда мы выйдем из цикла), будет длинною 4. Нам нужен res, чтобы сохранять значение max().
Тут возможен выход за массив num. При движении левого поинтера в цикле "while" нету проверки на окончание массива. Странно что leetcode не выдал ошибку
Не будет выхода. Левый поинтер никогда не обгонит правый. Потому что левый перемещается только когда zeros >= k. А zeros всегда увеличивает только правый поинтер. Поэтому левый максимум пройдет столько же сколько и правый.
Нет, так как правый и левый указатели максимум оба пройдут все элементы один раз , т.е мы максимум пройдёмся по каждому элементу дважды, а это O(2n)= O(n)