avva: (Default)
[personal profile] avva
Хорошая задача для интервью: взять квадратный двумерный массив и повернуть его на 90 градусов.

Хорошая в том смысле, что она отделяет возможных агнцев от несомненных козлищ. Если кандидат может это уверенно сделать, это еще ничего не значит; но если не знает даже, как подойти (см. описание по ссылке), то это уже о многом говорит.

Еще там в комментариях звучит здравая мысль о том, что любимые вопросы для интервью стоит менять время от времени, скажем, не задавать больше ста раз. У меня еще есть время в запасе до моего сотого интервью в Гугле, но все равно некоторые любимые вопросы пора обновить.
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

Date: 2008-09-04 07:17 am (UTC)
From: [identity profile] moon-aka-sun.livejournal.com
Главное - язык правильно выбрать!
   a =. i.4 4
   a
 0  1  2  3
 4  5  6  7
 8  9 10 11
12 13 14 15
   |:|.a
12  8 4 0
13  9 5 1
14 10 6 2
15 11 7 3

Date: 2008-09-04 07:21 am (UTC)
From: [identity profile] spamsink.livejournal.com
Какая досада, я как раз сегодня интервьюировал одного кандидата. Как за линейное время удалять из вектора числа, обладающие определенным свойством, он так и не догадался.

Date: 2008-09-04 07:22 am (UTC)
From: [identity profile] labor-lobby.livejournal.com
В самом деле зависит от контекста. Если массив - сетка высот, имеет смысл написать общий алгоритм поворота на произвольный угол, для преобразований, например, скопированного участка terrain.

Date: 2008-09-04 07:22 am (UTC)
From: [identity profile] object.livejournal.com
В блоге того же Чена описывается ситуация с обеденным перерывом, когда кандидат, боясь показаться несговорчивым, согласился пойти с проводящим собеседование в суши-бар, где явно до этого не был, и заказать то же, что и его спутник. Интересно, часто ли такое поведение оказывает существенное влияние на принятие окончательного решения? Мне кажется, достаточно часто. По крайней мере если действовать по принципу "любое сомнение толкуется против кандидата", что, имхо, довольно разумно.

Date: 2008-09-04 07:24 am (UTC)
From: [identity profile] labor-lobby.livejournal.com
Странно, обычно положительным поворотом считается "против часовой" :)

Date: 2008-09-04 07:32 am (UTC)
From: [identity profile] sleeping-death.livejournal.com
в задании говорится rotates it clockwise by 90 degrees.

Date: 2008-09-04 07:33 am (UTC)
From: [identity profile] ded_flint.livejournal.com
транспонировать, отразить по вертикали, затем по горизонтали

Date: 2008-09-04 07:36 am (UTC)
From: [identity profile] reut.livejournal.com
меня в том посте заинтересовала не столько сама предложенная задача, сколько реакция интервьюируемого. сразу - "Я не могу". он действительно считает, что с таким подходом его возьмут хоть на какую-то работу? да и в жизни этот подход так себе помогает...

Date: 2008-09-04 07:38 am (UTC)
From: [identity profile] sleeping-death.livejournal.com
только по вертикали ;)

Date: 2008-09-04 07:39 am (UTC)
From: [identity profile] kondybas.livejournal.com
За линейное? Не догадался? Гггг...

Date: 2008-09-04 07:39 am (UTC)
From: [identity profile] sleeping-death.livejournal.com
без использования второго массива интереснее.

Date: 2008-09-04 07:41 am (UTC)
From: [identity profile] ded_flint.livejournal.com
тогда это будет CCW

Date: 2008-09-04 07:41 am (UTC)
From: [identity profile] labor-lobby.livejournal.com
Ок. Ориентировался на quick перевод в сабже обсуждения.

Date: 2008-09-04 07:41 am (UTC)
From: [identity profile] kondybas.livejournal.com
Это при условии доступности матричных функций.

А вообще, достаточно заметить, что при повороте на 90ЦВ первая строка становится последним столбцом. Два вложенных цикла и манипуляции с индексами.

Date: 2008-09-04 07:42 am (UTC)
From: [identity profile] http://users.livejournal.com/_bigbrother_/
За ЛИНЕЙНОЕ?

Я чего-то не понимаю, или простой просмотр с копированием всего нужного в другой вектор сработает?

Или есть ограничения по памяти?

Date: 2008-09-04 07:44 am (UTC)
From: [identity profile] http://users.livejournal.com/_bigbrother_/
Я чего-то не понимаю?

Использование второго массива разрешено?

Если да, то это... как мне кажется, это просто не задача. Всё абсолютно и совершенно очевидно.

Более того, оно не так сложно и в случае ровно одного массива... но вот это я с листа так, чтобы заработало, могу и не написать :).

Date: 2008-09-04 07:44 am (UTC)
From: [identity profile] ded_flint.livejournal.com
всё зависит от применения функции. где-то подойдёт хардкод в духе swap(A,1,1,2,2), а где-то лучше реализовать матричные функции, а затем сделать общий подход.

BUG!!!!!

Date: 2008-09-04 07:45 am (UTC)
From: [identity profile] iratus.livejournal.com
решение:
http://geekswithblogs.net/cwilliams/archive/2008/06/16/122906.aspx

' For LEFT turns
For Y = 0 to 3
For X = 0 to 3
Destination(Y,X) = Source(X,Y)
Next
Next

Я ошибаюсь, или левый поворот - фигня полная.?????
например элемент(0,0) так и останется (0,0) после трансформации a должен стать (0,3)

Это не поворот, а отражение через диагональ или я не выспался с утра :-)

Date: 2008-09-04 07:47 am (UTC)
From: [identity profile] kondybas.livejournal.com
Я давно на беседах с кандидатами всерьез задаю только один вопрос: какие три материала по специальности вы прочитали последними? Если помнит хоть один - на сегодня это уже хорошо.

Date: 2008-09-04 07:50 am (UTC)
From: [identity profile] kondybas.livejournal.com
Так ведь на интервью никто не требует решений в продакшн, требуют концептуального понимания. Для меня ответ "транспонировать и отразить" равносилен ответу "заказать соответствующий софт у аутсорсеров" ;)

Date: 2008-09-04 07:53 am (UTC)
From: [identity profile] ded_flint.livejournal.com
ну зачем же так пессимистично-то?
если претендент уже на собеседовании думает о коде как о продакшне - это ж хорошо. я например сразу задумался о зачатке фреймворка для матричных операций, потому как вдруг понадобится поворачивать матрицу не на 90 градусов, а на 180? а на 270? ну и вот

Re: BUG!!!!!

Date: 2008-09-04 07:54 am (UTC)
From: [identity profile] ded_flint.livejournal.com
это называется транспонирование

Date: 2008-09-04 07:54 am (UTC)
From: [identity profile] iratus.livejournal.com
это хорошо, когда специальность так четко можно определить :-)

Re: BUG!!!!!

Date: 2008-09-04 07:56 am (UTC)
From: [identity profile] iratus.livejournal.com
Отлично... но задача была повернуть элементы матрицы а не транспонировать

Date: 2008-09-04 07:56 am (UTC)
From: [identity profile] sleeping-death.livejournal.com
уверены? ;)
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 12:39 pm
Powered by Dreamwidth Studios