Как найти золотник в куче Г...

SK
Уже с Приветом
Posts: 8643
Joined: 09 Feb 1999 10:01

Re: Как найти золотник в куче Г...

Post by SK »

Dweller wrote:Критерии простые - человек должен уметь кодить молча и быстро и без лишних вопросов
Если пытается себя продать и заливается словами и засыпает вопросами - в зад
Т.е. дал задачку на час на компе - сделано плюс, не сделано минус
Идеально для команд, где задача всегда четко определена. А если нет?
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Как найти золотник в куче Г...

Post by Dweller »

SK wrote:
Dweller wrote:Критерии простые - человек должен уметь кодить молча и быстро и без лишних вопросов
Если пытается себя продать и заливается словами и засыпает вопросами - в зад
Т.е. дал задачку на час на компе - сделано плюс, не сделано минус
Идеально для команд, где задача всегда четко определена. А если нет?
Фиксить команду а потом уже нанимать людей :)
Или это специфика задач такая что нет четкого определения? Типа R&D?
User avatar
fruit6
Уже с Приветом
Posts: 4205
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Re: Как найти золотник в куче Г...

Post by fruit6 »

все "определенные" задачи уже давно в индии. программистов для этого и садят за один стол чтобы они требования собирали и продукт клепали. аналисты, в общем смысле этого слова, отмирают как динозавры
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

[quote="Uzito"]

Code: Select all

У нас есть пациенты, которые ходят к врачу и им делают анализ глюкозы в крови. Есть следующие таблички - пациент, визиты, результаты измерений. Напишите запрос, который возвращает дату и результат последнего визита пациента, минимальное, максимальное и среднее значение измерений за все визиты, и результаты предыдущих трёх визитов. Все данные вывести на одной строке как
пациент, последний визит, результат, максимум, минимум, среднее, результат -1, результат -2, результат -3
Да вы маньяк какой то.
Last edited by Easbayguy on 02 May 2016 19:33, edited 1 time in total.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как найти золотник в куче Г...

Post by Uzito »

Easbayguy wrote:Где то так навскидку, может конечно primary key по другому, но смысл таков.
Структура табличек наважна, Вы могли нарисовать какие угодно. Код на троечку. В следующий раз используйте аналитику, она была даже в оракле 9, не говоря уж об 11 с пивотами.
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

Uzito wrote:
Easbayguy wrote:Где то так навскидку, может конечно primary key по другому, но смысл таков.
Структура табличек наважна, Вы могли нарисовать какие угодно. Код на троечку. В следующий раз используйте аналитику, она была даже в оракле 9, не говоря уж об 11 с пивотами.
Мне интервью не проходить, мне пофиг. Это только greasy bottom developers надо.
У нас хватает любителей использовать оракловские аналитические функции и ставить базы раком.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
Crocus
Уже с Приветом
Posts: 136
Joined: 29 Jan 2014 01:10

Re: Как найти золотник в куче Г...

Post by Crocus »

Easbayguy wrote:
Uzito wrote:
Easbayguy wrote:Где то так навскидку, может конечно primary key по другому, но смысл таков.
Структура табличек наважна, Вы могли нарисовать какие угодно. Код на троечку. В следующий раз используйте аналитику, она была даже в оракле 9, не говоря уж об 11 с пивотами.
Мне интервью не проходить, мне пофиг. Это только greasy bottom developers надо.
У нас хватает любителей использовать оракловские аналитические функции и ставить базы раком.
Задача, конечно, та еще, но зачем же вы потерли код... Было интересно узнать, что для Uzito есть "на троечку", ан нет, не успел. Можно мне его, код, в личку?
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

Crocus wrote:
Easbayguy wrote:
Uzito wrote:
Easbayguy wrote:Где то так навскидку, может конечно primary key по другому, но смысл таков.
Структура табличек наважна, Вы могли нарисовать какие угодно. Код на троечку. В следующий раз используйте аналитику, она была даже в оракле 9, не говоря уж об 11 с пивотами.
Мне интервью не проходить, мне пофиг. Это только greasy bottom developers надо.
У нас хватает любителей использовать оракловские аналитические функции и ставить базы раком.
Задача, конечно, та еще, но зачем же вы потерли код... Было интересно узнать, что для Uzito есть "на троечку", ан нет, не успел. Можно мне его, код, в личку?
К сожалению, я его только в сообщении написал, преимущество было что без использования пивота, этот sql можно легко модифицировать на любой движок. Скажем заменить decode на IF и будет выполняться в mysql и так далее. То есть чисто ANSI sql.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как найти золотник в куче Г...

Post by Uzito »

Easbayguy wrote:Мне интервью не проходить, мне пофиг. Это только greasy bottom developers надо.
У нас хватает любителей использовать оракловские аналитические функции и ставить базы раком.
Да я и не прошу, собственно. Я просто привёл пример что хороший девелопер должен уметь делать без десяти проходов по таблицам. Пока еще не встречался со случаем постановки базы раком из-за использования аналитических фунцкий, а обратное вижу чуть ли не каждую неделю. Приходится засучивать рукава и переписывать код чтобы работал в 500 раз быстрее.
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

Uzito wrote:
Easbayguy wrote:Мне интервью не проходить, мне пофиг. Это только greasy bottom developers надо.
У нас хватает любителей использовать оракловские аналитические функции и ставить базы раком.
Да я и не прошу, собственно. Я просто привёл пример что хороший девелопер должен уметь делать без десяти проходов по таблицам. Пока еще не встречался со случаем постановки базы раком из-за использования аналитических фунцкий, а обратное вижу чуть ли не каждую неделю. Приходится засучивать рукава и переписывать код чтобы работал в 500 раз быстрее.
Сначала вы сказали что у вас никто не может написать запрос, вам его написали за 5 минут по простенькому. В моем примерe читалась дважды только таблица пациентов, где вы там увидели 10 проходов по таблицам мне непонятно. Хотелось бы увидеть как вы его написали и мы тоже посмеемся. Извините, но переписывать код что бы он работал в 500 раз быстрее, это как то смешно. Может конечно вы недостающий индекс за переписывание кода называете или поменять в запросе порядок выполнения.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как найти золотник в куче Г...

Post by Uzito »

Easbayguy wrote:Хотелось бы увидеть как вы его написали и мы тоже посмеемся.
Да пожалуйста

Code: Select all

SELECT pnt_id, a_vsi_date vsi_date, a_gl gl_0, 
       a_min_gl min_gl, a_max_gl max_gl, a_avg_gl avg_gl,
       b_gl gl_1, c_gl gl_2, d_gl gl_3
  FROM (SELECT p.pnt_id, v.vsi_date, gl,
               MIN (m.gl) OVER (PARTITION BY p.pnt_id) min_gl,
               MAX (m.gl) OVER (PARTITION BY p.pnt_id) max_gl,
               AVG (m.gl) OVER (PARTITION BY p.pnt_id) avg_gl,
               ROW_NUMBER () OVER (PARTITION BY v.pnt_id ORDER BY v.vsi_date DESC) rn
          FROM patient p, visits v, measures m
         WHERE   p.pnt_id = v.pnt_id
             AND v.pnt_id = m.pnt_id(+) 
             AND v.vsi_id = m.vsi_id(+)
        ) PIVOT (MAX (min_gl) min_gl,
                 MAX (max_gl) max_gl,
                 MAX (avg_gl) avg_gl,
                 MAX (vsi_date) vsi_date,
                 MAX (gl) gl
          FOR rn IN (1 a, 2 b, 3 c, 4 d))
Для Oracle 10 пришлось бы страдать с max(decode(rn, 1, gl))
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

Uzito wrote:
Easbayguy wrote:Хотелось бы увидеть как вы его написали и мы тоже посмеемся.
Да пожалуйста

Code: Select all

SELECT pnt_id, a_vsi_date vsi_date, a_gl gl_0, 
       a_min_gl min_gl, a_max_gl max_gl, a_avg_gl avg_gl,
       b_gl gl_1, c_gl gl_2, d_gl gl_3
  FROM (SELECT p.pnt_id, v.vsi_date, gl,
               MIN (m.gl) OVER (PARTITION BY p.pnt_id) min_gl,
               MAX (m.gl) OVER (PARTITION BY p.pnt_id) max_gl,
               AVG (m.gl) OVER (PARTITION BY p.pnt_id) avg_gl,
               ROW_NUMBER () OVER (PARTITION BY v.pnt_id ORDER BY v.vsi_date DESC) rn
          FROM patient p, visits v, measures m
         WHERE   p.pnt_id = v.pnt_id
             AND v.pnt_id = m.pnt_id(+) 
             AND v.vsi_id = m.vsi_id(+)
        ) PIVOT (MAX (min_gl) min_gl,
                 MAX (max_gl) max_gl,
                 MAX (avg_gl) avg_gl,
                 MAX (vsi_date) vsi_date,
                 MAX (gl) gl
          FOR rn IN (1 a, 2 b, 3 c, 4 d))
Для Oracle 10 пришлось бы страдать с max(decode(rn, 1, gl))
Зря я свой код то удалил оказывается. :D Фу, аж с души отлегло!
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
Uzito
Уже с Приветом
Posts: 8230
Joined: 06 Feb 2002 10:01
Location: NJ, USA

Re: Как найти золотник в куче Г...

Post by Uzito »

Easbayguy wrote: Зря я свой код то удалил оказывается. :D Фу, аж с души отлегло!
Ну покритикуйте уж, что стесняться-то? Тут все свои.
MCP
Уже с Приветом
Posts: 752
Joined: 09 Sep 2005 21:43

Re: Как найти золотник в куче Г...

Post by MCP »

stenking wrote: а потом оплачиваемый боевой проект на несколько дней/неделю/две. Даже 10 неудач для поиска 1-го кандидата будет стоить меньше чем время всех эти интервьюверов/рекрутеров и несравнимо лучшим результатом.
Как вы думаете какой % соискателей (особенно толковых соискателей) согласися выполнять этот пусть даже оплачиваемый проэкт ?
И как вы планируете соискатель будет выполнять его дома удаленно ?(где тогда гарантия что его сделал он сам) или у вас в оффисе(он тогда должен брать отпуск на работе на несколько дней/неделю/две ?)
И что вы заплатите претенденту который сделал например 50/75/97 % вашего тестового задания ?
User avatar
major Major Major Major
Уже с Приветом
Posts: 1319
Joined: 10 Jan 2000 10:01
Location: Хьюстон

Re: Как найти золотник в куче Г...

Post by major Major Major Major »

Uzito wrote: Ну покритикуйте уж, что стесняться-то? Тут все свои.
Привет из 80х, экономим на байтах. Я так тоже писал, будучи студентом.

SELECT pnt_id, a_vsi_date vsi_date, a_gl gl_0, a_min_gl min_gl, a_max_gl max_gl, a_avg_gl avg_gl,

А надо считаю немного по другому.

SELECT PatientId, LastVisitDate, MinimumTestMeasurement, MaximumTestMeasurement...
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

major Major Major Major wrote:
Uzito wrote: Ну покритикуйте уж, что стесняться-то? Тут все свои.
Привет из 80х, экономим на байтах. Я так тоже писал, будучи студентом.

SELECT pnt_id, a_vsi_date vsi_date, a_gl gl_0, a_min_gl min_gl, a_max_gl max_gl, a_avg_gl avg_gl,

А надо считаю немного по другому.

SELECT PatientId, LastVisitDate, MinimumTestMeasurement, MaximumTestMeasurement...
Это вы на интервью так замучаетесь писать.
Как говорится: keep this shit away from my databases!

Bug 11655920 : WRONG RESULT WHEN SUBQUERY WITH PIVOT FUNCTION IS REFERENCED
Bug 18751855 ORA-600 [qcspCheckAggs.1] with PIVOT group by placement if fix for bug 18516620 is present
Bug 19822816 - High parse time for SQL with PIVOT and binda (can block LGWR on "library cache lock") (Doc ID 9822816.8) To BottomTo Bottom
Bug 18516620 - ORA-56904 / ORA-7445 from PIVOT query - superseded (Doc ID 18516620.8)
Bug 13639998 ORA-7445 [qksxaGetSingleAnnotation] / memory corruption using PIVOT with NVL
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
Kolbasoff
Уже с Приветом
Posts: 3481
Joined: 02 Jan 2005 22:10

Re: Как найти золотник в куче Г...

Post by Kolbasoff »

MCP wrote:Как вы думаете какой % соискателей (особенно толковых соискателей) согласися выполнять этот пусть даже оплачиваемый проэкт ?
Да до фига. Кандидат тоже хочет на кухню конторскую посмотреть, а то напоют в три уха а потом в быдлокод 4-ой степени говнистости мордой хрясь! При грамотной организации процесса разработки за две недели можно много чего сделать, а если сначала по корпоративной вике ползать месяц пытаясь запустить аппликуху на лаптопе, то нах нах такие работы.
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Как найти золотник в куче Г...

Post by Easbayguy »

Kolbasoff wrote:
MCP wrote:Как вы думаете какой % соискателей (особенно толковых соискателей) согласися выполнять этот пусть даже оплачиваемый проэкт ?
Да до фига. Кандидат тоже хочет на кухню конторскую посмотреть, а то напоют в три уха а потом в быдлокод 4-ой степени говнистости мордой хрясь! При грамотной организации процесса разработки за две недели можно много чего сделать, а если сначала по корпоративной вике ползать месяц пытаясь запустить аппликуху на лаптопе, то нах нах такие работы.
Вот поэтому вы и не подходите на лесопилку!
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
ARARAT.
Уже с Приветом
Posts: 34816
Joined: 20 Oct 2006 00:29
Location: RUS->USA

Re: Как найти золотник в куче Г...

Post by ARARAT. »

adda_ wrote: Это давно уже известный факт. Решение принимается в первые несколько минут, дальше пытаются доказать себе что это решение правильное.
Насчет задачек. Я считаю что умение решать задачи у доски иррелевантно умению работника решать практические задачи. Т.е. корреляции нет, есть только совпадение.
Единственный надежный на 100% способ - мнение людей которые с человеком работали раньше и которым вы можете доверять.
Все остальное - лотерея.
Ибо самый умный решальщик задач может оказаться махровым лентяем или неуправляемым гением. И наоборот. Есть люди которые теряются на интервью но при этом будут прекрасно работать хоть индивидуально, хоть в команде. Все эти знания новых технологий и фрейворков а так же умных слов - ерунда. Во первых все это устаревает со страшной силой, во вторых все это выучивается за неделю на уровне нужном для писания кода.
.........................
+1000
Именно так и никак иначе...
Натаскивание на интервью и задачки вообще нечего не стоит, я бы наверно даже сказал стоит отрицательно...
Практически никогда те задачки негде и не применяются в той форме в которой спрашивают, а в реальной форме их и не спросить практически.
Да и большенство задачек спрашивают неправильно, слишком "много переменных остается", ответов может быть довольно мног смотря какие условия применения/"переменных".
Да и "правильные" ответы которые ждут на самом деле совсем не правильные в реальности(типа как поменять местами значения двух переменных без использования extra переменных, за тот правильный ответ который ждут, я бы просто увольнял без разговорв даже, а не то что на работу брал)...
User avatar
x.angie
Уже с Приветом
Posts: 189
Joined: 13 Mar 2006 19:01
Location: Earth -> Moon -> Mars

Re: Как найти золотник в куче Г...

Post by x.angie »

ARARAT. wrote: +1000
Именно так и никак иначе...
Натаскивание на интервью и задачки вообще нечего не стоит, я бы наверно даже сказал стоит отрицательно...
Практически никогда те задачки негде и не применяются в той форме в которой спрашивают, а в реальной форме их и не спросить практически.
Да и большенство задачек спрашивают неправильно, слишком "много переменных остается", ответов может быть довольно мног смотря какие условия применения/"переменных".
ARARAT, ну вот смотрите. Приходите вы на интервью к Uzuto, а он вас и спрашивает
Uzito wrote:

Code: Select all

У нас есть пациенты, которые ходят к врачу и им делают анализ глюкозы в крови. Есть следующие таблички - пациент, визиты, результаты измерений. Напишите запрос, который возвращает дату и результат последнего визита пациента, минимальное, максимальное и среднее значение измерений за все визиты, и результаты предыдущих трёх визитов. Все данные вывести на одной строке как
пациент, последний визит, результат, максимум, минимум, среднее, результат -1, результат -2, результат -3
Писать можно используя функциональность Оракл 10/11/12 или MS-SQL.
Что вы будете делать? Без попытки подлюбить спрашиваю.
ARARAT. wrote: Да и "правильные" ответы которые ждут на самом деле совсем не правильные в реальности(типа как поменять местами значения двух переменных без использования extra переменных, за тот правильный ответ который ждут, я бы просто увольнял без разговорв даже, а не то что на работу брал)...
Это используя XOR, что ли?
Bugfixing по фотографии. Дорого.
User avatar
ARARAT.
Уже с Приветом
Posts: 34816
Joined: 20 Oct 2006 00:29
Location: RUS->USA

Re: Как найти золотник в куче Г...

Post by ARARAT. »

x.angie wrote:
ARARAT. wrote: +1000
Именно так и никак иначе...
Натаскивание на интервью и задачки вообще нечего не стоит, я бы наверно даже сказал стоит отрицательно...
Практически никогда те задачки негде и не применяются в той форме в которой спрашивают, а в реальной форме их и не спросить практически.
Да и большенство задачек спрашивают неправильно, слишком "много переменных остается", ответов может быть довольно мног смотря какие условия применения/"переменных".
ARARAT, ну вот смотрите. Приходите вы на интервью к Uzuto, а он вас и спрашивает
Uzito wrote:

Code: Select all

У нас есть пациенты, которые ходят к врачу и им делают анализ глюкозы в крови. Есть следующие таблички - пациент, визиты, результаты измерений. Напишите запрос, который возвращает дату и результат последнего визита пациента, минимальное, максимальное и среднее значение измерений за все визиты, и результаты предыдущих трёх визитов. Все данные вывести на одной строке как
пациент, последний визит, результат, максимум, минимум, среднее, результат -1, результат -2, результат -3
Писать можно используя функциональность Оракл 10/11/12 или MS-SQL.
1. Что вы будете делать? Без попытки подлюбить спрашиваю.
ARARAT. wrote: Да и "правильные" ответы которые ждут на самом деле совсем не правильные в реальности(типа как поменять местами значения двух переменных без использования extra переменных, за тот правильный ответ который ждут, я бы просто увольнял без разговорв даже, а не то что на работу брал)...
Это используя XOR, что ли?
1. BD не моя стихия совсем... Дело не в етом совсем, ето все дело 10 минут когда надо применить. А самое главное именно ета задача в етой форме почти гарантированно никогда не будет. И еще одно, даже если человек задачку решил ето далеко не значит, что он будет способен писать что-нибудь еще, кроме заученной задачки. Проверять надо не решения задачек,а подходы к программированию(а их за 15 минут никак не просечь)...
2. b=b+a, a=b-a, b=b-a. Ету задачу(при условии равной разрядности етих двух переменных) правильно без применения третьей переменной не решить или надо ставить проверки значений(т.е. код будет работать лишь при части возможных значений, т.е. "недоделанный" код) или будут возможные run-time erros при перегрузке переменной(b в данном случае), т.е. код будет дерьмо...
Last edited by ARARAT. on 03 May 2016 02:52, edited 1 time in total.
Deckel
Ник закрыт за хамство.
Posts: 357
Joined: 16 Feb 2014 18:34

Как найти золотник в куче Г...

Post by Deckel »

Krys-Krys wrote:
_Lenchik wrote:
Uzito wrote:
Да, чтобы лабать примитивный сиквель и недели много. Но для того, чтобы писать код, который не будет занимать десять страниц печатного текста, нужно знать предметную область, как то аналитические фунции, генераторы и т.д. (или хотя бы быть к курсе их существования).
А где бы научится SQL на уровне выше среднего? Знать всякие мелочи для оптимизации, типа - "пользовательская функция вызывается для каждой строки запроса"

Если читать огромное колическво книжек, то это явно больше недели потребуется.
Google -> Interview advanced SQL questions and answers. :great:
http://www.programmerinterview.com/inde ... tabase-sql" onclick="window.open(this.href);return false;

Да, неплохо, но конечно не исчерпывающе.

Чтобы научиться выше среднего нужно попадать в ситуации, где справедливы две максимы массовой обработки данных:
1. Все, что можно сделать в SQL, нужно делать в SQL.
2. Процессоры базы при выполнении запроса должны быть загружены на полную, но чем короче, тем лучше.

Тогда становятся понятными многие странности и угловатости SQL и развивается интуиция.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как найти золотник в куче Г...

Post by stenking »

x.angie wrote: Что вы будете делать? Без попытки подлюбить спрашиваю.
Зависит от позиции. Например для ДБ админа это очень простой вопрос. Практически 2+2.

А для девелопмент позиции писать такую сложную квири это скорее минус. Правильным решением это разбить данную задачу на 3 небольшие подзадачи с простым синтаксисом

1. вывести дату и результат последнего визита пациента,

2. вывести минимальное, максимальное и среднее значение измерений за все визиты

3. вывести результаты предыдущих трёх визитов

И показать как их запустить асинхронно и как красиво показать на клиенте !
Бога нет.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как найти золотник в куче Г...

Post by stenking »

MCP wrote:
stenking wrote: а потом оплачиваемый боевой проект на несколько дней/неделю/две. Даже 10 неудач для поиска 1-го кандидата будет стоить меньше чем время всех эти интервьюверов/рекрутеров и несравнимо лучшим результатом.
Как вы думаете какой % соискателей (особенно толковых соискателей) согласися выполнять этот пусть даже оплачиваемый проэкт ?
И как вы планируете соискатель будет выполнять его дома удаленно ?(где тогда гарантия что его сделал он сам) или у вас в оффисе(он тогда должен брать отпуск на работе на несколько дней/неделю/две ?)
И что вы заплатите претенденту который сделал например 50/75/97 % вашего тестового задания ?
А почему бы и нет? Во первых деньги ( независимо от результата ) , во вторых это шанс и себя показать и компанию изнутри посмотреть. А как - можно удалённо, можно вечерами а обычно я прошу взять отпуск на неделю. Тут же не результат важен а именно что показать код, скорость работы и общую адекватность.
Бога нет.
User avatar
x.angie
Уже с Приветом
Posts: 189
Joined: 13 Mar 2006 19:01
Location: Earth -> Moon -> Mars

Re: Как найти золотник в куче Г...

Post by x.angie »

ARARAT. wrote: 1. BD не моя стихия совсем... Дело не в етом совсем, ето все дело 10 минут когда надо применить. А самое главное именно ета задача в етой форме почти гарантированно никогда не будет. И еще одно, даже если человек задачку решил ето далеко не значит, что он будет способен писать что-нибудь еще, кроме заученной задачки. Проверять надо не решения задачек,а подходы к программированию(а их за 15 минут никак не просечь)...
Да нет, не BD это не похоже, скорее обычный, мать его так, ОперДень, судя по описанию и структуре табличек. Типичнейшая задачка для RDBMS, такая базёнка для BD скорее вредная чем полезная (индексы, constraints, foreign keys, etc.)
ARARAT. wrote:2. b=b+a, a=b-a, b=b-a. Ету задачу(при условии равной разрядности етих двух переменных) правильно без применения третьей переменной не решить или надо ставить проверки значений(т.е. код будет работать лишь при части возможных значений, т.е. "недоделанный" код) или будут возможные run-time erros при перегрузке переменной(b в данном случае), т.е. код будет дерьмо...
Ну, в принципе, направление мысли про недостатки кода верное. Я знаю один канонический способ как правильно решать эту задачку - через XOR операцию или https://en.wikipedia.org/wiki/XOR_swap_algorithm:

Code: Select all

b = b XOR a
a = b XOR a
b = b XOR a
Но кто вспомнит через 6 месяцев что такой код делает? И как его поддерживать кому-то другому через те же шесть месяцев? Cost of Ownership опять же.

P.S. Я вот тренеруюсь на Codility частенько, и там мне тоже попалась задачака на манипулирование битами -> https://codility.com/programmers/task/o ... _in_array/" onclick="window.open(this.href);return false;

После минут пяти размышлений я пришел к выводу, что нужно использовать битовую представление (или что-то битовое) для хранения промежуточных результатов. Но потом я часа на полтора или два завис и не знал как продвинуться дальше. Перепробовал всё что знал про биты, битовые маски, битовые операции и так далее. В результате, сдался и нагуглил разяснение решения. По нему уже сам написал код, который очень прост:

Code: Select all

  def solution(A: Array[Int]): Int = {
    var result = 0

    if (A != null)
      A.foreach(number => result = result ^ number)

    result
  }
Решение эфективное как по памяти, так и времени выполнения. И да, оказалось это вопрос с интервью в Google.
Bugfixing по фотографии. Дорого.

Return to “Работа и Карьера в IT”