Re: Как эффективнее решать алгоритмические задачи?
От: StatujaLeha на правах ИМХО
Дата: 22.01.23 10:19
Оценка: 3 (1)
Здравствуйте, merge, Вы писали:

Если не критично, то можно переключиться на LeetCode: там у каждой задачи есть раздел "Related Topics" и можно подсмотреть, в какие темы копать.
Как эффективнее решать алгоритмические задачи?
От: merge  
Дата: 22.01.23 08:35
Оценка: +1
Универ давно закончил и совсем забыл как их решать.
Открыл тут hackerrank задачку.
Вопрос вот какой.
если алгоритм не знаешь какой к задаче то лучше пытаться всё равно самому пусть долго но найти решение или же в яндексе по ключам поискать направление решение?

по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь
Re: Как эффективнее решать алгоритмические задачи?
От: Максим Россия  
Дата: 22.01.23 09:41
Оценка: +1
M>если алгоритм не знаешь какой к задаче то лучше пытаться всё равно самому пусть долго но найти решение или же в яндексе по ключам поискать направление решение?
M>по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь

Есть популярные списки задач которые охватывают основные темы и для них есть хорошо разобранные решения. Самый известный Blind 75, имеет смысл начать с них. Плюс там есть разбивка по неделям чтобы не было соблазнов задинамить процесс
https://www.techinterviewhandbook.org/grind75
https://neetcode.io/practice

Я сначала стараюсь сам решить, если не смог, то смотрю на ютюбе решение (есть пару хороших каналов) и после этого могу еще несколько подобных задач сам прорешать. Но даже если сам решил, то смотрю как другие люди решали эту задачу, как и в любом деле есть много нюансов и хитростей. Убиваться неделю над задачей, на мой взгляд, нет особого смысла.
Errare humanum est
Re: Как эффективнее решать алгоритмические задачи?
От: Gradiens  
Дата: 24.01.23 07:00
Оценка: +1
Здравствуйте, merge, Вы писали:

M>если алгоритм не знаешь какой к задаче то лучше пытаться всё равно самому пусть долго но найти решение или же в яндексе по ключам поискать направление решение?


Лучше чтобы что?
Плясать надо от требований. Например, решать "для себя" или "для собеса" — это две большие разницы.
Ты в другом сообщении вскользь упоминаешь про сертификацию. Насколько сертификация и хакер ранк кореллируют? Ты точно уверен, что именно такие задачи нужно решать для сертификации?
Re[3]: Как эффективнее решать алгоритмические задачи?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 24.01.23 19:13
Оценка: +1
Здравствуйте, merge, Вы писали:

M>тут просто на работе сертификация решили начать делать

Тревожные звоночки для тебя и твоей работы
Sic luceat lux!
Re: Как эффективнее решать алгоритмические задачи?
От: vsb Казахстан  
Дата: 22.01.23 09:55
Оценка:
Эффективней почитать книжки, посмотреть, как решаются типовые задачи и только потом тренироваться. Сам ты эти алгоритмы не придумаешь с бухты барахты. Их умнейшие люди придумывали десятки лет, не льсти себе.

В общем нужна в голове некая база типовых алгоритмов и подходов. И потом идёт тренировка твоей способности распознавать в задаче типовой алгоритм или сочетание нескольких типовых алгоритмов и быстро писать решение.

При этом, если тебе это нужно для прохождения собеседования, наверное лучше вообще напрямую заучивать эти задачки.
Re[2]: Как эффективнее решать алгоритмические задачи?
От: Максим Россия  
Дата: 22.01.23 11:33
Оценка:
vsb>Сам ты эти алгоритмы не придумаешь с бухты барахты. Их умнейшие люди придумывали десятки лет, не льсти себе.

Не, ну понятно, что если ты свел исходную задачу к необходимости найти кратчайшее расстояния от одной вершины до других, ты не начинаешь изобретать алгоритм Дейкстры. Иначе одну задачу можно будет пару лет решать.
Errare humanum est
Re: Как эффективнее решать алгоритмические задачи?
От: __kot2  
Дата: 22.01.23 15:51
Оценка:
Здравствуйте, merge, Вы писали:
M>по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь
алгоритмические задачи они какбэ разного класса бывают. задачи что спрашивают на интервью попадают в несколько классов и проще всего эти самые классы задач изучить и там дальше все по кругу. а есть реальные алгоримические задачи, типа как в Кормене про алгоритмы, там реально думать надо и уж точно не полчаса на задачу
Re: Как эффективнее решать алгоритмические задачи?
От: AmSpb  
Дата: 22.01.23 18:35
Оценка:
Здравствуйте, merge, Вы писали:

M>Универ давно закончил и совсем забыл как их решать.

M>Открыл тут hackerrank задачку.
M>Вопрос вот какой.
M>если алгоритм не знаешь какой к задаче то лучше пытаться всё равно самому пусть долго но найти решение или же в яндексе по ключам поискать направление решение?
M>по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь

Синдром самозванца может развиться, если постоянно париться, что ты не знаешь всех деталей того, с чем работаешь.
Можешь решить задачу в заданные сроки — вот на чтобы я ориентировался, а не бичевание себя, что не все детали знаешь.

Например, в Java хэши были реализованы сначала стандартно, в виде массива, где каждый элемент массива связанный список, а потом связанный список заменили на rb-дерево,
что улучшило производительность работы хэша при его сатурации(насыщении), а толку от этой инфы, если ты не разработчик самого языка Java ?
Просто запоминаешь, что теперь в худшем случае поиск по хэшу занимает O(logN), а не O(N) без погружения в детали, а в среднем поиск занимает O(1)
Отредактировано 22.01.2023 18:39 AmSpb . Предыдущая версия .
Re[2]: Как эффективнее решать алгоритмические задачи?
От: merge  
Дата: 23.01.23 08:18
Оценка:
Здравствуйте, __kot2, Вы писали:

__>Здравствуйте, merge, Вы писали:

M>>по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь
__>алгоритмические задачи они какбэ разного класса бывают. задачи что спрашивают на интервью попадают в несколько классов и проще всего эти самые классы задач изучить и там дальше все по кругу. а есть реальные алгоримические задачи, типа как в Кормене про алгоритмы, там реально думать надо и уж точно не полчаса на задачу

так я думал что задачи из Кормэна как раз на собесах спрашивают в яндексах и фаанг
Re[2]: Как эффективнее решать алгоритмические задачи?
От: merge  
Дата: 23.01.23 08:24
Оценка:
Здравствуйте, AmSpb, Вы писали:



AS>Синдром самозванца может развиться, если постоянно париться, что ты не знаешь всех деталей того, с чем работаешь.


AS>Можешь решить задачу в заданные сроки — вот на чтобы я ориентировался, а не бичевание себя, что не все детали знаешь.


тут просто на работе сертификация решили начать делать, а я не решал алгоритмы оччень давно 10+ лет. А в шарпе том же подобные таски не попадаются ибо формочки.
Просто если взять ту задачу что привел выше мне показалось вроде свиду не сложной, т.е. не обход дерева, и подумал что должен вроде сам решить.
А получается я так понимаю что алгоритмы это по сути распознать нужный паттерн в таске и поэтому тут проще не тратить время, а сразу искать по задаче тему или как выше сказали на литкоде смотреть?
Re[3]: Как эффективнее решать алгоритмические задачи?
От: Максим Россия  
Дата: 23.01.23 08:26
Оценка:
M>так я думал что задачи из Кормэна как раз на собесах спрашивают в яндексах и фаанг

Обычно спрашивают задачки по типу Литкодовских уровня medium/hard. В телеграме можно найти канал для тех, кто готовится в фаанг. Там те, кто недавно проходил собеседование деляться вопросами.

П.С.
Из Кнута советую с осторожностью к задачам подходить(если не планируете жить вечно). Старик любит пошутить и в некоторые главы добавляет задачки из серии "докажите теорему Ферма" и разумеется не указывая тот факт, что эта задача никому не поддалась на протяжении нескольких столетий.
Errare humanum est
Отредактировано 23.01.2023 8:30 Максим . Предыдущая версия .
Re[3]: Как эффективнее решать алгоритмические задачи?
От: Максим Россия  
Дата: 23.01.23 08:35
Оценка:
M>А получается я так понимаю что алгоритмы это по сути распознать нужный паттерн в таске

Да, но не все так просто, бывает несколько алгоритмов нужно соединить, или дополнительные оптимизации делать
Вот, например, попробуйте решить эту задачу https://acmp.ru/index.asp?main=task&id_task=538
Там используются простые шаги для решения, но если никогда не решал подобных задач, то на собеседовании, за 45 минут, не реально на мой взгляд справиться
Тут разбор если что https://www.youtube.com/watch?v=tfInr4Zfj4c
Errare humanum est
Re[3]: Как эффективнее решать алгоритмические задачи?
От: __kot2  
Дата: 23.01.23 09:17
Оценка:
Здравствуйте, merge, Вы писали:
M>так я думал что задачи из Кормэна как раз на собесах спрашивают в яндексах и фаанг
неее, это вообще про другое. задачки спрашивают с литкода или из книжки cracking coding interview
Re: Как эффективнее решать алгоритмические задачи?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 07.02.23 18:00
Оценка:
Здравствуйте, merge, Вы писали:

M>по идее если самому пытаться всё то мозг активнее работает, но по второму ключу быстрее заучишь всё и больше прорешаешь

Для собеса — быстрее учишь и запоминаешь. Для себя — разбираешься, читаешь книги, стараешься понять задачу.
Sic luceat lux!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.