Антон
мне почему то кажется что если ищу курсы то и на работу программиста идти не стоит.. но ведь есть интерес какой-никакой
планы обучения наверно надо поискать в интернете как примеры и что работодатели предлагают
Виталик Голоенко
эта ноумета :) пиши я если н езанят отвечу :)
ок https://www.codewars.com/kata/608cc9666513cc00192a67a9 мое решение но оно не работает с очень большими числами, как можно оптимизировать алгоритм?
Дима
Объясни, а.? Интересно же.
нивею в РБ запретили
Alexander
нивею в РБ запретили
Точно,, там же есть эта, как ее... Белита или Белвест... Непомню
Igor
а паттерны это вообще песня из ООП на учебных задачках с ней можно столкнуться только если специально применять
та ладно при чем тут паттерны к ооп :) паттерн это идея. Паттерна даже в коде может не быть он может на уровне идеи существует в решении. Т е паттерн стратегия в применении к перебору если мы выберем стратегию FIFO будет BFS если LIFO будет DFS если что то посложнее можем получить A*
Дима
та ладно при чем тут паттерны к ооп :) паттерн это идея. Паттерна даже в коде может не быть он может на уровне идеи существует в решении. Т е паттерн стратегия в применении к перебору если мы выберем стратегию FIFO будет BFS если LIFO будет DFS если что то посложнее можем получить A*
та все паттерны почти на уровне идеи и существуют, нет правил как писать код чтобы реализовать тот или иной. Просто большинство из них раскрываются в полную мощь в каких-то сложных не учебных системах)
Дима
да, понимаю, в питоне есть еще и итератор :)
Дима
И скорее всего еще что-то
Дима
Я просто хотел сказать, что это такие вещи, над которыми не стоит заморачиваться, а они сами придут
Igor
Ну те если ты не знаешь паттерны это не значит что ты их не используешь :)
Дима
полностью согласен)
Lavrentiy
Ребят а курсы на DataCamp норм? Они бесплатные?
Дима
на самом деле у меня был момент в жизни, когда мне стало итнересно и я прочел книгу по паттернам такую филетовую
Дима
не помню авторов. Но было очень интересно)
Дима
После этого мне стало куда легче их применять, писать, использовать
Igor
Так и все же интересно чем теткам не нравятся сотрудники с пакетами нивея? :) прям счастлив что работаю в мужском коллективе. Сейчас бы меня еще хейтили за то что я носки со шлепками одеваю :)
Igor
я надеюсь, шерстяные носки-то?)
зимой конечно шерстяные холодно же
Igor
прям контейнер шейминг какой та
Антон
Что лучше интересно получать опыт на стажировках или сам например на Codewars?
Дима
Что лучше интересно получать опыт на стажировках или сам например на Codewars?
ты просто сейчас спрашиваешь: что лучше пирог или лазанья
Дима
или стартапы
забудь об этом)
Антон
забудь об этом)
в смысле не стоит связываться?
Дима
Ну знаешь такой анекдот: шел программист по лесу, увидел стартап с новационными идеями и супер крутой командой, сел в него и сгорел)
Виталик Голоенко
Видимо Игорь ушел(
Igor
Видимо Игорь ушел(
а ты что то спрашивал?
Виталик Голоенко
Igor
ну да, сверху
ок ща позырю
Антон
есть ли смысл взять за план обучения требования работодателя?
Дима
так, пишут про нивею
Дима
Всем внимание)
Slava
С джейквери ок, а с нивея что не так?
Это было странно. Он выглядил так, как будто на дворе 2000 год. Ничего против ношения поношенных пакетов не вижу. Просто меня это удивило
Дима
Это было странно. Он выглядил так, как будто на дворе 2000 год. Ничего против ношения поношенных пакетов не вижу. Просто меня это удивило
У меня на пары по топологии препод приходил с мелом в пакетике из под сахара 1990 года :) А потом надевал строительные перчатки, брал мел и писал)
Дима
Он же мудак)))
Slava
Он же мудак)))
Зато какой!
Дима
Зато какой!
я в команде Кокса)
Igor
Видимо Игорь ушел(
ну вообще как всегда вариантов море :) начиная от банального дерева, к более изварщенным вещам по типу Disjoint Sparse Table и заканчивая алгоримом Мо :)
Igor
Можно попробовать даже банальную корневую декомпозицию
Igor
ну самое банальное с деревом представь у тебя есть массив [1,2,3,1,2,3,4,5,1,2] это значения в конкретной точке теперь представь массив в два раза меньше в котором будет посчитанна операция попарно допустим сумма
Igor
[3,4,5,9,3] и еще раз [7,14] и еще [21]
Igor
теперь из этих чисел за логарифм операций можно собрать окончательное значение для любого отрезка
Виталик Голоенко
а как разбить массив попарно?
Igor
в смысле разбить попарно ? в новом масиве значение это сумма двух значений из предыдущего массива
Igor
таких массивов логарифм
Виталик Голоенко
а если нечетное кол-во элементов?
Igor
можно представлять себе что есть еще нолик, а можно просто не добавлять, проще не добавлять вообще
Igor
как у меня получилось на втором шаге последняя тройка оказалась не парной
Igor
так тут должно сумма выйти 24, а у вас 21
это как раз та тройка которую мы потеряли
Igor
если бы операция была идемпотентной было бы проще но у нас это не гарантируется поэтому приходиться городить огород
Виталик Голоенко
это как раз та тройка которую мы потеряли
и этот алгорит будет быстрее чем метод reduce((a,b)=> a + b)?
Виталик Голоенко
ок
Igor
тебе нужно придумать как из этих кусков составлять нужный размер
Igor
Кстати алгоритм Мо не получится там нужна обратимость :(
Igor
остается дерево и disjoint sparse table
Igor
ну и можно попробовать корневую эвристику
Igor
это еще проще почти как предыдущий метод только всего с одним уровнем
Igor
отрезок разобъем на равные куски допустим по 10 элементов
Igor
и для всех отрезков длинной 10 посчитаем готовые значения
Igor
потом возьмем в нашем отрезке все отрезки по 10 которые входят а остальные куски досчитаем обычными
Igor
ну вместо 10 лучше брать что то типа корня длинны можно поиграться этим числом
Виталик Голоенко
если массив длинной в 16, то разбиваем по 4?
Виталик Голоенко
а можно через рекурсию?
Igor
т е если мы разбили по 10 то у нас посчитанны с [0..9] с [10 .. 11] и т д когда нам нужно посчитать с 907 до 1231 мы берем 907 908 909 + [900..910]+ .. [1220..1229] + 1230 + 1231
Igor
а можно через рекурсию?
хз где ты тут рекурсию видишь
Виталик Голоенко
ну ладно, ща буду пробовать
Виталик Голоенко
хз где ты тут рекурсию видишь
ну типо проводим массив через рекурсию пока там не будет 1 элемент
Igor
теоретически если прикрутить мемоизацию то первый способ можно свести к рекурсии но это из разряда извращений или лени :)
Igor
нам нужна наибольшая степень двойки которая меньше длинны массива (это первый установленный бит) потом мы разбиваем отрезко по степени этой двойки и считаем рекурсией но мемоизация обязательна иначе будет лажа из минусов рекурсия дорогая операция нужно сохранить в стек текущее состояние
Виталик Голоенко
а какой способ быстрей этот let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; //массив, можно использовать массив объектов let size = 3; //размер подмассива let subarray = []; //массив в который будет выведен результат. for (let i = 0; i <Math.ceil(array.length/size); i++){ subarray[i] = array.slice((i*size), (i*size) + size); } или этот const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const array_size = 3; const sliced_array = []; for (let i = 0; i <array.length; i += array_size) { sliced_array.push(array.slice(i, i + array_size)); }
Igor
думаю одинаково :) ну +- это не те оптимизации которыми стоит заниматься