Den
Хм... Ты полный ноль в кодинге?
Можно сказать да. Немного видео смотрел.
Шурок
Можно сказать да. Немного видео смотрел.
https://www.youtube.com/watch?v=oXYYNRbFBes&ab_channel=%D0%A0%D0%B0%D0%B9%D0%BC%D0%B0%D0%BD
Денис
всем привет, кто знает данного работодателя? https://nn.hh.ru/employer/2733062#main
Den
Иаков
Спасибо 👍🏻
Удачи! Кста, еще советую метанит чекать.. Тип, ты модешь совмещать, и видео тоже... А то просто эта книга может показаться слишком долгой https://metanit.com/java/tutorial/ (1 главу выбери раздел с intellij idea)... Ну, как альтернатива, в общем
Igor
https://leetcode.com/problems/house-robber/ норм?
Главное чтобы тебе понравилось ;) И чтобы ты ее до этого не решал ;)
Виталик Голоенко
Igor
мне нравится, токо не понятно как решать)
Ну напиши хоть какое то решение ;)
Виталик Голоенко
Ну напиши хоть какое то решение ;)
та отож шо даже какое-то не лезет
Igor
та отож шо даже какое-то не лезет
Ну давай рассуждать так ... предположим что у нас есть 100500 домов 100200 ты уже ограбил ... и каким то образом умудрился это сделать оптимально что тебе нужно знать чтобы продолжить грабить дальше
Igor
на сколько вообще оптимальность зависит от того как ты грабил до этого ?
Igor
Может быть так что для того чтобы ограбить текущий дом нужно было знать как ты грабил 10 домов назад?
Igor
Это непрерывный рюкзак с доп условием?)
там в непрерывном рюкзаке вроде жадина ? плюс возможность делить на части ... хз как тут можно рюкзак натянуть
Vyacheslav
там в непрерывном рюкзаке вроде жадина ? плюс возможность делить на части ... хз как тут можно рюкзак натянуть
Ну жадину тут не натянуть, да, потому что два соседних брать нельзя Просто условия прям похожи капец Хотя наверное дофига алгоритмов на набор максимальной суммы, просто ограничения разные
Igor
Что нужно знать чтобы продолжить грабить ... есил мы на n+1 доме
Igor
допустим мы дома пронумеровали ... и грабим по порядку
Виталик Голоенко
точнее нужно знать последние 2
Igor
почему два?
Виталик Голоенко
не?)
Виталик Голоенко
ну вот у нас дома 9 1 1 9 как узнать что нам надо первый и последний?
Igor
Ну типа я тебе говорю за первые n домов можно набрать 100 баксов
Igor
и остался один дом ... как грабить оптимально ... какие вопросы еще возникают
Виталик Голоенко
Igor
да
Igor
а точнее сколько можно набрать если грабить предполедний и если не грабить предпоследний
Igor
это все что нам нужно знать про предыдущее состояние
Виталик Голоенко
а точнее сколько можно набрать если грабить предполедний и если не грабить предпоследний
но если мы ограбили предпред последний то вопросов не возникнет ибо мы точно будем в плюсе если ограбим его
Igor
ты усложняешь
Igor
нет это не правильно ...и на самом деле тебе похуй
Igor
н правильно потому что предпредпред последний может хранит 100500 тыщ мильенов ... и тогда мы не сможем ограбить его ... но нам пофиг как мы грабили до этого
Igor
важно грабили мы предпоследний или нет ... если мы знаем оптимальную сумму когда мы грабили предпоследний и оптимальную сумму когда мы его не грабили это все что нам нужно знать
Виталик Голоенко
пон
Igor
Значит это что? ;)
Виталик Голоенко
дп
Igor
да
Igor
с двумя состояниями всего
Igor
После того как решишь там вот такая штука появляется. Выбирай любую ;)
Виталик Голоенко
После того как решишь там вот такая штука появляется. Выбирай любую ;)
int rob(vector<int>& nums) { int result = 0; int grabili = 0; int ne_grabili = 0; int grabim = 0; int ne_grabim = 0; for(int i = 0; i < nums.size();i++){ grabim = ne_grabili + nums[i]; ne_grabim = grabili > ne_grabili ? grabili : ne_grabili; grabili = grabim; ne_grabili = ne_grabim; } return grabim > ne_grabim ? grabim : ne_grabim; }
Igor
int rob(vector<int>& nums) { int result = 0; int grabili = 0; int ne_grabili = 0; int grabim = 0; int ne_grabim = 0; for(int i = 0; i < nums.size();i++){ grabim = ne_grabili + nums[i]; ne_grabim = grabili > ne_grabili ? grabili : ne_grabili; grabili = grabim; ne_grabili = ne_grabim; } return grabim > ne_grabim ? grabim : ne_grabim; }
и потом эти люди спрашивают почему ты любишь пайтон ;) def rob(self, nums: List[int]) -> int: n, r = 0,0 for v in nums: n, r = max(n, r), v + n return max(n, r) но в принципе да ;)
Azamat
и потом эти люди спрашивают почему ты любишь пайтон ;) def rob(self, nums: List[int]) -> int: n, r = 0,0 for v in nums: n, r = max(n, r), v + n return max(n, r) но в принципе да ;)
вот такой думаешь над задачей, пишешь там код в 10-15 строк и нихера не работает, а тут какой то Игорь кидает решение в 4 строки :(
Виталик Голоенко
https://leetcode.com/problems/delete-and-earn/
Azamat
Ну, у вас разный опыт)
Это как мемы с азиатами
Igor
Вообще советую решать связанные задачи для закрепления.
Igor
вот такой думаешь над задачей, пишешь там код в 10-15 строк и нихера не работает, а тут какой то Игорь кидает решение в 4 строки :(
Разберись почему это работает ... и что эти 4 строчки значат ... несколько таких задач и сам сможешь решать ничем не хуже )
Azamat
Игорь, а вы какого уровня задачи решаете в code wars? Имею ввиду кью
Igor
Игорь, а вы какого уровня задачи решаете в code wars? Имею ввиду кью
хз я уже писал там ну 4-5 еще есть смысл решать ... дальше больше возни. Имхо оно того не стоит. у меня есть решенные вроде 3-2 кью но там легкие попались.
Виталик Голоенко
Игорь, а вы какого уровня задачи решаете в code wars? Имею ввиду кью
та кью это ваще херня там можно над 5 кью год думать а можно 3 кью за пол часа решить
Igor
да много задач тупо на реализацию имеет 3-4 кью ... хотя по факту решение в лоб
Igor
codewars больше на посмотреть возможности языка. Алгоритмы там тренировать бессмысленно тесты в 90% случаев полное дерьмо
Igor
лиит в этом плане чуть по лучше. и на лиит есть связанные задачи это для самостоятельного изучения имхо очень полезно
Igor
вот такой думаешь над задачей, пишешь там код в 10-15 строк и нихера не работает, а тут какой то Игорь кидает решение в 4 строки :(
Если интересно можешь спрашивать могу дать теорию что почитать чтобы разобраться если не знаком с ДП. На самом деле идея очень простая. Хотя увидеть состояния бывает не просто ;)Это касается и других алгоритмических задач ... спрашивай если смогу помогу.
Igor
Что рекомендуешь почитать начинающим?
Прям совсем начинающим или классику ... или можно посмотреть на интуите базовые алгоритмы для школьников от Станкевича. Есть даже на ютубе плейлист. Классика это Кормен наверное я читал его ... а на курсере смотрел Скиену но у него тоже есть книги. Еще можно олимпиадников позырить ... это на русском Олимпиадное программирование (Лааксонен). На английском https://cpbook.net/
Сергей
Всё Игорь, записали тебя в пердуны :) виделИ, скажитЕ))
Igor
Спасибо!
поправил с верху книжки ... но вообще советую начать со Станкевича. Это именно не строго математически но с достаточным уровнем для понимания это раз. А второе хорошо показывают как сама идея возникает и как при этом рассуждают и оценивают. Имхо в 100500 раз больше пользы чем от грокаем алгоритмы
eye=x×s²
а тутс есть сисадмины?
Igor
Кстати, на каком уровне надо знать математику для понимания всех или хотя бы большинства алгоритмов? (Надеюсь, не слишком тупой вопрос)
Для базовых на минимальном ... +- школьный Некоторые вещи могут требовать чуть более продвинутую математику, но обычно для понимания достаточно объяснить на пальцах не вдаваясь в дебри
Сидредин
Сидредин
Robert
Вроде @rdogson
… хотя ты прав. :)
eye=x×s²
тепо сисадмин не прогер
Нmmm
забулили человека
Сидредин
Robert
тепо сисадмин не прогер
Мне уйти из чата?
Нmmm
nometa.xyz
туда меня
eye=x×s²