Имелось ввиду, что ожидалось для именно этого вопроса. Код как предоставил Mr. R или математическое решение. Я про этот вопрос прочитал в 11 вечера вчера. Подумав 10 мин. решил, что не стоит оно бессонницы. Спросил у Wiki и там все написано . Математически.АццкоМото wrote: ↑10 May 2017 23:36Честно говоря, я не уверен, что понял, что вы имели в виду. Но так кажется релевантным. Я как-то спрашивал на интервью молодого американца, как узнать, есть ли цикл в односвязном списке. Заранее абиснил, что если не знаешь ответа, то вряд ли допетришь сам, в рамках интервью как минимум. Он честно сказал, что ответ просто знает. Я секунд через 15 прервал его, было очевидно, что реально знает.Andriy777 wrote: ↑10 May 2017 23:28Интересно также, что интервьюер принимает как "проходной бал".АццкоМото wrote: ↑10 May 2017 19:44Чота не знаю... Наверное, я сегодня тупой. Вроде и логика понятна, но интуитивно кажется неверной.M. Ridcully wrote: ↑10 May 2017 19:38Вот так можно написать, чтобы понятней было:А чтобы быстро работало - нужно итеративно заполнить массив от 0 до n_keys, чтобы num_bst(n) считалось всего один раз для кажлого n - классическое динамическое программирование.Code: Select all
int num_bst(int n_keys) { assert(n_keys >= 0); if (n_keys == 0 || n_keys == 1) { return 1; } int n = 0; for (int n_left = 0; n_left < n_keys; n_left++) { int n_right = n_keys - 1 - n_left; n += num_bst(n_left) * num_bst(n_right); } return n; }
В любом случае, спасибо, есть над чем подумать
а) Интересные мысли на доске от человека, который в первый раз думает над такой проблемой (включая, а нафига это надо и почему оценка "дофига" не достаточна).
б) Человек математик, знает про числа Каталана и как это все доказать.
в) Человек читал недавно (давно) и просто знает ответ.
г) Отвечает "да ну его нафиг эту комбинаторику" и пишет код, как показан выше.
Анекдот в тему. На границе США офицер О опрашивает приезжего P.
O: So you are arriving on H1-B visa as a software engineer, right?
P: Yes, sir.
O: Can you tell me how many edges are in a tree with N nodes?
P: Can I use StackOverflow.com?
O: Welcome to the United States!
Глупость? Может быть. Но лично мне сказало о многом
Cracking the coding interview - study group, East Bay
-
- Уже с Приветом
- Posts: 1481
- Joined: 28 Jan 2002 10:01
Re: Cracking the coding interview - study group, East Bay
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Cracking the coding interview - study group, East Bay
Я не понимаю этот язык, извините.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Cracking the coding interview - study group, East Bay
На самом деле вопрос довольно нетривиальный и имеет даже свое имя Числа Каталана
http://www.geeksforgeeks.org/g-fact-18/
С вот такой козырной картинкой
https://en.wikipedia.org/wiki/Catalan_n ... ions_5.svg
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Cracking the coding interview - study group, East Bay
Йопта, картинку можно использовать вместо слабого раствора перманганата калия для промывания желудка. Я с минуту разглядывал, а уже немного укачало. Сила мысли же!Sergunka wrote: ↑11 May 2017 21:49На самом деле вопрос довольно нетривиальный и имеет даже свое имя Числа Каталана
http://www.geeksforgeeks.org/g-fact-18/
С вот такой козырной картинкой
https://en.wikipedia.org/wiki/Catalan_n ... ions_5.svg
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 5665
- Joined: 15 Aug 2008 00:52
Re: Cracking the coding interview - study group, East Bay
значицца посмотрел я ту книжонку. Например, на странице 58-60, особенно в секции Error checking, аффтар рассказывает, как это важно проверять на ошибочный входные данные во время интервью при кодировании - с чем лично я согласен и с чем некоторые форумчане не согласны. Однако ж возврат "-1" в качестве ответа на ошибочный вход несколько удручает. Я уже не говорю про то, что банальные проверки на переполнение не производятся.АццкоМото wrote: ↑10 May 2017 17:13А не помните, какие решения показались сомнительными...Alexander Troyansky wrote: ↑10 May 2017 16:47Для mock-interview вроде как нужно минимум два человека. Зато в списке отсутствует "рассмотрение лажовых примеров решений". Листал я ту книженцию, так вот пара решений мне показались весьма сомнительными.
На странице 417, в качестве ответа на вопрос, заданный на странице 160 "You are given a class with synchronized method A and normal B..." -- даётся ответ, который на мой взгляд неполный в контексте демонстрации понимания темы на фоне неоднозначного вопроса: аффтар обисняет, что оказывается синхронизированные методы могут выполняться одновременно двумя потоками на разных объектах. Ну блин тогда следовало бы тему немного развить для статических методов.
Ещё одно сомнительное место, не запомнил страницу, кажется, в начале главы 14 Multi-threading, приведен пример проверка переменной, изменяемой в другом потоке, но синхронизация (ну там volаtile или Atomic) в примере не используется.
I would hope that a wise white man with the richness of his experiences would more often than not reach a better conclusion than a latina female who hasn't lived that life
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Cracking the coding interview - study group, East Bay
Примерно понятно, спасибо. У нас страницы не совпадают, к сожалению, под рукой только бумажное 6е издание. Кстати, скорей всего такие мелкие недочеты отлавливаются и исправляются в следующих изданиях. Все-таки книжка по размеру подходит для засолки капусты и просто не может в ней все быть идеально.Alexander Troyansky wrote: ↑16 May 2017 18:12значицца посмотрел я ту книжонку. Например, на странице 58-60, особенно в секции Error checking, аффтар рассказывает, как это важно проверять на ошибочный входные данные во время интервью при кодировании - с чем лично я согласен и с чем некоторые форумчане не согласны. Однако ж возврат "-1" в качестве ответа на ошибочный вход несколько удручает. Я уже не говорю про то, что банальные проверки на переполнение не производятся.АццкоМото wrote: ↑10 May 2017 17:13А не помните, какие решения показались сомнительными...Alexander Troyansky wrote: ↑10 May 2017 16:47Для mock-interview вроде как нужно минимум два человека. Зато в списке отсутствует "рассмотрение лажовых примеров решений". Листал я ту книженцию, так вот пара решений мне показались весьма сомнительными.
На странице 417, в качестве ответа на вопрос, заданный на странице 160 "You are given a class with synchronized method A and normal B..." -- даётся ответ, который на мой взгляд неполный в контексте демонстрации понимания темы на фоне неоднозначного вопроса: аффтар обисняет, что оказывается синхронизированные методы могут выполняться одновременно двумя потоками на разных объектах. Ну блин тогда следовало бы тему немного развить для статических методов.
Ещё одно сомнительное место, не запомнил страницу, кажется, в начале главы 14 Multi-threading, приведен пример проверка переменной, изменяемой в другом потоке, но синхронизация (ну там volаtile или Atomic) в примере не используется.
А нащот проверок - я обычно пишу сначала код без них, потом говорю, каких проверок не хватает и спрашиваю, добавить ли. Очень, кстати, порадовал последний ассессмент на кодилити - только начал было добавлять проверки, перечитываю assumptions about input data - yay! вообще ни одна проверка не нужна.
С мультитредингом тоже забавный случай был на днях. Русскоговорящий чел дает код, что-то очень простое, тупая манипуляция со списком. один метод по сути и main(), который его вызывает несколько раз с разными параметрами. Типа надо найти ошибки. Одна - очевидная. Он говорит - еще есть. Чесал жбан, чесал - ничего не вижу больше. Он такой - а ConcurrentModificationException тебе о чем-то говорит? Я такой - помилуйте, метод синхронно вызывается из main() никакого мультитрединга тут нет и быть не может. Он такой - не факт. Следующий вопрос
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Cracking the coding interview - study group, East Bay
жутко извиняюсь, тока прочла сообщения.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 5538
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Cracking the coding interview - study group, East Bay
Посмотрел 6-е издание. Некоторые ошибки в коде реально тупые. Часть примеров, похоже, надергана из реальных проектов и не до конца причесана.
Тем не менее, хорошее подспорье для тех, кто не был на интервью в крупных компаниях.
Тем не менее, хорошее подспорье для тех, кто не был на интервью в крупных компаниях.
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Cracking the coding interview - study group, East Bay
Собственно говоря я не увидел в этой книжке ни одного эллегантно написаного примера (правда у меня уж совсем старое издание 5-е) Особую печаль вызвала секция по заяснению как писать программу для игры Ханойская Башня. Я понимаю, что когда Николас Вирт написал и опубликовал свой незамысловатый алгоритм
Code: Select all
public void solve(int n, String start, String auxiliary, String end) {
if (n == 1) {
System.out.println(start + " -> " + end);
} else {
solve(n - 1, start, end, auxiliary);
System.out.println(start + " -> " + end);
solve(n - 1, auxiliary, start, end);
}
}
В пятом издании насколько я помню хвостовая рекурсия для чисел фиббоначи не раскрыта, что должно повергнуть ТС в смертельную тоску
На самом деле книга очень хорошая и показывает общий уровень интервьюверов в том же Гугл кто еще не встречался просто обязаны прочитать и поверить в то, что все это правда
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 2749
- Joined: 11 Jul 2015 19:01
- Location: Chicago
Re: Cracking the coding interview - study group, East Bay
Чота никак не могу нарыть, бывает электронный формат издания cracking the coding interview? На Амазон только бумажный вариант вижу, среди для kindle вижу издание для пм от этого автора. На каких то левых сайтах продают якобы пдф за 5$. Но попахивает разводом.
Тяжко блин два килограмма с собой в сумке таскать чтобы в метро по настроению читать.
Тяжко блин два килограмма с собой в сумке таскать чтобы в метро по настроению читать.
-
- Уже с Приветом
- Posts: 5538
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Cracking the coding interview - study group, East Bay
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Cracking the coding interview - study group, East Bay
Да какие там два килограмма. 1364 грамма.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 2749
- Joined: 11 Jul 2015 19:01
- Location: Chicago
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Cracking the coding interview - study group, East Bay
А что, с утра решить, какую из двух книг сегодня в метрЕ читать — не?
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 2749
- Joined: 11 Jul 2015 19:01
- Location: Chicago
Re: Cracking the coding interview - study group, East Bay
Ну вот попалась задача в крекинг и понимаешь что теория пробел, так открыл вторую книгу, прочёл теорию и потом пытаешься решить.АццкоМото wrote: ↑19 Jun 2017 13:21А что, с утра решить, какую из двух книг сегодня в метрЕ читать — не?
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Cracking the coding interview - study group, East Bay
о что книги в электронном виде уже не модно? отстал я от жизниnyekimov wrote: ↑19 Jun 2017 13:30Ну вот попалась задача в крекинг и понимаешь что теория пробел, так открыл вторую книгу, прочёл теорию и потом пытаешься решить.АццкоМото wrote: ↑19 Jun 2017 13:21А что, с утра решить, какую из двух книг сегодня в метрЕ читать — не?
-
- Уже с Приветом
- Posts: 5283
- Joined: 27 Sep 2008 21:48
- Location: Moscow-Seattle-SFBA