Какой ужас этот ваш додиез
как-то так, за 5 минут, правда не тестил:
int max_subsequence(int arr_size, int * values, int seq_size)
{
assert(arr_size >= seq_size);
int pos_begin=0;
int pos_end=seq_size-1;
int max_pos=0;
int sum=0;
for(int i = 0;i< seq_size;i++)
sum+=values[i];
int max_sum = sum;
while (pos_end < arr_size-1)
{
sum = sum - values[pos_begin++] + values[++pos_end];
if (max_sum < sum)
{
max_pos = pos_begin;
max_sum = sum;
}
}
return max_pos;
}
ЗЫ. алгоритма в глаза не видел, просто как-то в голову пришло
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: Задача на собеседовании - обращение списка.
Мне лень лезть в рефлектор и смотреть как оно реализовано. Даже если как
классический двунаправленный список, то пофиг -- задача все равно
выродилась в убожество.
Posted via RSDN NNTP Server 2.1 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить?
Всё что написали — читать не стал... Так не могут или сразу отказываются продолжать интервью? А про "гномов" — зачет! Сразу вспоминаю одно из своих собеседований... Не удержался тогда — "макнул" мальчика в... Но хоть его коллеги от души посмеялись Похоже он и их зае...ь успел своим "пафосом"
Здравствуйте, samius, Вы писали:
S>Здравствуйте, Ops, Вы писали:
Ops>>
Ops>>int max_subsequence(int arr_size, int * values, int seq_size)
Ops>>
Ops>>ЗЫ. алгоритма в глаза не видел, просто как-то в голову пришло
S>А что такое seq_size? Какая задача решалась?
Поиск наибольшей (или наименьшей, тут непринципиально) последовательности за 1 проход.
Где-то выше ganjustas сформулировал.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, samius, Вы писали:
S>>А что такое seq_size? Какая задача решалась? Ops>Поиск наибольшей (или наименьшей, тут непринципиально) последовательности за 1 проход. Ops>Где-то выше ganjustas сформулировал.
Разве в той формулировке была указана длина последовательности?
Re[10]: Задача на собеседовании - обращение списка.
Здравствуйте, jhfrek, Вы писали:
J>первокурсник, обладающий теоретическими знаниями, может писать не оптимальные запросы, просто потому что у него нет опыта и знаний какие именно запросы оптимальны. Если вы готовы подождать пока он этого опыта наберется, то можно брать и первокурсника.
А какой тут нужен опыт? Оптимальность прямо следует из теории. А вот если человек не знает, как работает join, например, и не сможет назвать сложность поиска по индексу (сложность операций в деревьях и хеш-таблицах — это второй вопрос после разворота списка, неправильный ответ на который приводит к преждевременному завершению интервью) — то никакой опыт ему не поможет.
Re[8]: Задача на собеседовании - обращение списка.
Здравствуйте, Ops, Вы писали:
Ops>Лучше сразу на сербскохорватском, а то вдруг и его не знает.
Сербохорвацкий нужен в сербскохорватии, а в программировании нужен английский (единственное исключение — платформа 1С, но это даже не программированием называется, а конфигурацией).
Re[4]: Задача на собеседовании - обращение списка.
Здравствуйте, Eye of Hell, Вы писали:
EOH>Тада все нормально. К нам на такие деньги большинство кандидатов тоже конструктор от деструктора не отличают . Видимо, рынок сейчас такой.
А сколько надо платить, чтобы отличал?
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, Banned by IT, Вы писали:
BBI>Здравствуйте, Паблик Морозов, Вы писали:
MC>>>Они еще про гору Фудзи спрашивают(ли), тоже на вооружение возьмёте? ПМ>>Возьму. Не вижу причин не брать на вооружение зарекомендовавшие себя практики. BBI>Начнём с того, что ты знаешь только то, что такой вопрос задают. Но совершенно не знаешь зачем они его задают, и как они именно они трактуют рассуждения собеседуемого.
Именно поэтому я его и не задаю. Когда разберусь как это работает, буду использовать.
BBI>Так что "зарекомендовавшая" это очень громко сказано.
Non sequitur. Практика как раз есть. Просто я не владею технологией.
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, Ромашка, Вы писали:
Р>А можно про подсказки подробнее? Блин, это задача на понимание Р>указателей, коих ни в шарпе ни в жабе нет.
Нифига себе нет! Все объекты передаются по ссылкам. Адресной арифметики нет, но она и не нужна.
Р>избыточность получается жуткая, по сравнению с плюсами, где оригинальная
Нет никакой избыточности, всё как в C или в С++, один в один (только без уродских звёздочек и стрелочек).
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
EOH>>Тада все нормально. К нам на такие деньги большинство кандидатов тоже конструктор от деструктора не отличают . Видимо, рынок сейчас такой.
ПМ>А сколько надо платить, чтобы отличал?
Самое абсурдное, имхо, увеличение планки только увеличит кол-во неадекватов, т.к. для них это будет дополнительный стимул попытаться (ого, дежищщи какие), а нормальный разработчик, адекватно оценивающий степень своей некомпетентности, сочтет предъявляемые требования чересчур жесткими для него.
Re[5]: Задача на собеседовании - обращение списка.
EOH>>Тада все нормально. К нам на такие деньги большинство кандидатов тоже конструктор от деструктора не отличают . Видимо, рынок сейчас такой. ПМ>А сколько надо платить, чтобы отличал?
Если бы я знал .
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>А сколько надо платить, чтобы отличал?
А ты уверен, что тебе действительно нужен человек, который будет отличать? В большинстве случаев, при грамотной постановке задач, подойдут разработчики чуть умнее обезьяны. Для остальных, крайней редких задач,, планку стоило бы, конечно, на 30-50% поднять.
Re[7]: Задача на собеседовании - обращение списка.
ПМ> Давать компьютер и закрывать в комнате на 3 часа, пока не напишет сапёр — издевательство.
Может и издевательство, но только так удастся проверить — способен ли человек реально что-то напрограммировать. Понятно, стресс и все такое — но это мелочи в сравнении с издевательскими вопросами.
Re[12]: Задача на собеседовании - обращение списка.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Ромашка, Вы писали:
Р>>List в C#, как меня недавно ткнули носом, нифига не список, а массив.
L>Нет, это тот, кто тебя ткнул, переносит свой плюсовый опыт, не задумываяь на другие области.
Почему обязательно плюсовый? Не только плюсовики под списком подразумевают связный список. Как минимум все или значительная часть функциональщиков.
L>Посмотрите, что такое список в википедии и ткните его самого.
Да, в википедии написано что List — абстрактная структура данных, которая типично реализуется с помощью связных списоков или массивов (динамических массивов).
Там же написано
The name list is also used for several concrete data structures that can be used to implement abstract lists, especially linked lists.
Lists are typically implemented either as linked lists (either singly or doubly linked) or as arrays, usually variable length or dynamic arrays.
The standard way of implementing lists, originating with the programming language Lisp, is to have each element of the list contain both its value and a pointer indicating the location of the next element in the list.
Так какого надо было для частной реализации на динамическом массиве использовать имя, которое обозначается как для абстрактной структуры данных, так и для реализаций по типу связных списков, которые являются стандартной реализацией абстрактного списка?
Re[13]: Задача на собеседовании - обращение списка.
Здравствуйте, samius, Вы писали:
L>>Нет, это тот, кто тебя ткнул, переносит свой плюсовый опыт, не задумываяь на другие области. S>Почему обязательно плюсовый? Не только плюсовики под списком подразумевают связный список. Как минимум все или значительная часть функциональщиков.
S>Так какого надо было для частной реализации на динамическом массиве использовать имя, которое обозначается как для абстрактной структуры данных, так и для реализаций по типу связных списков,
Я думаю, мотивация достаточно проста — для большинства случаев использования удобен список на основе массива, а раз так, то имеет смысл использовать более краткое название для такого типа списков.
S>которые являются стандартной реализацией абстрактного списка?
О каком таком стандарте вы говорите?
Re[14]: Задача на собеседовании - обращение списка.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, samius, Вы писали:
S>>Так какого надо было для частной реализации на динамическом массиве использовать имя, которое обозначается как для абстрактной структуры данных, так и для реализаций по типу связных списков,
L>Я думаю, мотивация достаточно проста — для большинства случаев использования удобен список на основе массива, а раз так, то имеет смысл использовать более краткое название для такого типа списков.
Если следовать такой логике, то Dictionary наверное тоже должен был бы называться по-короче?
S>>которые являются стандартной реализацией абстрактного списка?
L>О каком таком стандарте вы говорите?
Я говорю о стандартном способе реализации, который не я придумал. Цитату из википедии я приводил.
Re[15]: Задача на собеседовании - обращение списка.
Здравствуйте, samius, Вы писали:
L>>Я думаю, мотивация достаточно проста — для большинства случаев использования удобен список на основе массива, а раз так, то имеет смысл использовать более краткое название для такого типа списков.
S>Если следовать такой логике, то Dictionary наверное тоже должен был бы называться по-короче?
Dictionary несколько затруднительно сократить, уже одно слово.
S>>>которые являются стандартной реализацией абстрактного списка?
L>>О каком таком стандарте вы говорите? S>Я говорю о стандартном способе реализации, который не я придумал. Цитату из википедии я приводил.
По какой причине должен быть выбран именно такой "стандарт"?