Igor
counter скорее
метод применяется н етолько к массиву индексы ходят не только вперед могут двигаться навстречу могут двигаться по связанному списку. Одна из классических задач на собесе на метод двух указателей это поиск цикла в связанном списке Кстати очень красивая штука всем кто не знает советую посмотреть
Igor
опять же простая идея когда знаешь :) когда не знаешь можно всю голову сломать
Дима
спасибо за полезный совет)
Кирилл Самородов
где вообще алгоритмы и структуры данных учите? Чет как-то все руки не доходили, надо поучить
Дима
я думаю как это назвать это уже вкусовщина
Дима
и привычка
Шурок
мы не создаем второй массив это просто цикл по оставшимся местам в массиве
Сорян, питон вижу раз в 5 в жизни. Суть уловил, мы перетаксиваем в первом цикле элементы между собой, а вторым добиваем первый. Но есть одно но. Разве первый массив мы не до конца пройдем в любом случае?
Дима
главное идея
Дима
там тысячи разборов самых разных задач
Igor
https://www.codewars.com/kata/5af9a4b2de4c7fdab30000e5
Igor
даже интересно, как за линейное время можно цикл в связном списке найти. Если через матрицу смежности задается граф. Нам в универе давали, на сколько я помню решил со сложностью o(n^2)
ставим два указателя в начало списка потом один идет на 1 шаг а второй на два если они встретятся то есть цикл если не встретятся значит кто то дойдет до конца :) = профит
Дима
правда
Кирилл Самородов
++
Дима
обожаю за такие штуки программирование
Дима
точнее вот такие вот задачки
Erik
Привет. Объясните мне пожалуйста, нахера в Питоне else и elif, если вместо них можно спокойно писать if, и результат будет тот же. Или я что-то неправильно понял?
Дима
Я думаю ты можешь писать всегда if)
Дима
без рофлов
Шурок
в ифе
В случае если все в 0, мы получим решение O(n2)
Дима
2n и n это одно и тоже
Дима
главное степень
Дима
а не коэффицент
Кирилл Самородов
elif для сложных ветвлений скорее, что-то вроде if (усл) elif(усл) else
Дима
Ля, надо самому сесть и еще разок хорошенько почитать первые главы Кормена
Дима
и поделать все задачки
Дима
там про сложность
Igor
В случае если все в 0, мы получим решение O(n2)
не получим j пройдет n шагов i останется в нуле потом весь массив заполниться нулями те 2* N но не N^2
Дима
и как ее вычислять
Кирилл Самородов
не получим j пройдет n шагов i останется в нуле потом весь массив заполниться нулями те 2* N но не N^2
в сложности алгоритма используются пределы, а в пределах не будет 2n, а будет просто n
Дима
хоть убейте, я эту биг-О нотацию путаю с остаточными членами ряда Тейлора
Кирилл Самородов
да не дотошный, ты тут прав просто, там сложность o(N)
Кирилл Самородов
можно даже не уточнять про 2n
Igor
Ну если i = 0 то строго говоря можно не идти значит весь массив нулевой но это оптимизация частного и на сложность в асимптотическом смысле не влияет
Erik
А, else я понял для чего, чтоб на одну строчку меньше писать. А в чем разница между if и elif я так и не вдуплил
Erik
В коде, который в учебнике дан, я менял elif на if, ничего не меняется
Кирилл Самородов
т.е если a=0 b=0 if(a==b) a++ elif(a=0) b++ и if(a==b) a++ if(a==0) b++ результат будет одинаковый?
Igor
В коде, который в учебнике дан, я менял elif на if, ничего не меняется
elif включает предыдущее условие отдельный if не включает
Виталик Голоенко
А, else я понял для чего, чтоб на одну строчку меньше писать. А в чем разница между if и elif я так и не вдуплил
В if инструкции внутри блока if выполняются, если выражение истинно. Если выражение ложно, выполняется следующий оператор после блока if. В if else блок if выполняется, если выражение истинно, а если выражение ложно, управление передается блоку else.
Виталик Голоенко
Достаточно рассмотреть простой пример, чтобы понять, в чем заключается разница. int x = 0; if ( x == 0 ) { System.out.printline( "x = " + x ); ++x; } else if ( x == 1 ) { System.out.printline( "x = " + x ); ++x; } else if ( x == 2 ) { System.out.printline( "x = " + x ); ++x; } Вывод на консоль будет x = 0 А если этот код переписать в виде if ( x == 0 ) { System.out.printline( "x = " + x ); ++x; } if ( x == 1 ) { System.out.printline( "x = " + x ); ++x; } if ( x == 2 ) { System.out.printline( "x = " + x ); ++x; } то вывод на консоль будет x = 0 x = 1 x = 2
Кирилл Самородов
по моему в питоне elif выполняется, если предыдущее условие ложно, а уловие после elif истинно
Кирилл Самородов
а иф просто если условие истинно
Кирилл Самородов
в этом и разница
Кирилл Самородов
выше пример кинул
Igor
Вот кстати неплохая задача для джуна на собес https://www.codewars.com/kata/554ca54ffa7d91b236000023
Кирилл Самородов
Ну да. А кто-то спорит?
Ну выше писали что это одно и то жн
Сидредин
Vladislav
Блин, скачал vim. В нем чуть че-то пописал и понял что это ужасно. НО МНЕ ОЧЕНЬ ПОНРАВИЛОСЬ)
Vladislav
Любишь боль, мазохист?
нет, мне его стиль понравился
Vladislav
Что именно?
он тупенький и квадратный,
Last
Здравствуйте! Подскажите пожалуйста как поле конструкта превратить в массив? (JavaScript)
Vladislav
Anonymous
Скажите разницу между Bot.polling И If name = main: Bot.polling
Виталик Голоенко
он тупенький и квадратный,
как по мне vs code классика
Last
поле конструтка?
Constructor , прошу прощение
Виталик Голоенко
Constructor , прошу прощение
всеровно не понял какое поле
Сидредин
Constructor , прошу прощение
Берёшь и превращаешь. Это же JS
Vladislav
Скажите разницу между Bot.polling И If name = main: Bot.polling
в первом случае оно у тебя выполняется во всех файлах при импорте функции, а во 2 только в отцовском
Кирилл Самородов
Ты хочешь все это передавать в массиве?
Last
Берёшь и превращаешь. Это же JS
Я нуб ещё, ровно месяц только учусь
Сидредин
Какое поле?
Vladislav
не знаю, понел ты или нет
Vladislav
из меня просто рассказчик так себе
Сидредин
Order
Ну, ты должен передать туда массив и всё