- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };
IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);
foreach (double number in onlyInFirstSet)
Console.WriteLine(number);
/*
This code produces the following output:
2
2.1
2.3
2.4
2.5
*/
LispGovno 27.11.2014 15:21 # 0
У них ещё и Enumerable.Distinct есть. Вернет только дублированные переменные, убрав их копии. Не требует сортировки исходной коллекции.
cyperh 27.11.2014 17:39 # 0
Анонимус 27.11.2014 17:45 # +1
>>на сколько я помню. 00:00:00.0007206
L:)))))))))))))))))
bormand 27.11.2014 17:46 # +1
Анонимус 27.11.2014 17:47 # 0
bormand 27.11.2014 17:48 # 0
И ответ "да хуй его знает, я их не считал" их устроил? (Ну не верю я, что кто-то помнит, сколько их там).
koodeer 27.11.2014 17:53 # +2
Анонимус 27.11.2014 18:01 # 0
Собеседник сказал что их на самом деле 28 вроде (там еще MVC сокрыт, его в каталоге нет, но он упоминается)
bormand 27.11.2014 18:02 # 0
Анонимус 27.11.2014 18:04 # 0
Следующий раз буду лучше готовиться
LispGovno 27.11.2014 18:22 # 0
Yу что посоны? Задачку чтоли из гугла вам простейшую задать? Есть массив целых чисел. Есть искомое число. Найти любую пару чисел из этого массива, сумма которых равна искомому числу.
Вариант ответа с производительностью О(n^2) даже не предлагать.
3.14159265 27.11.2014 18:27 # 0
roman-kashitsyn 27.11.2014 18:31 # +1
У неё много решений. От O(log n * n) времени и O(1) памяти до O(n) времени и O(n) памяти. Мне её как-то задавали на собеседовании и я додумался до O(n) + O(n).
Есть более интересный вариант: 3 числа в массиве, сумма которых ближе всего к некому числу X.
3.14159265 27.11.2014 18:35 # 0
Вопрос в том как решить её в языке где в стандартной библиотеке нету мапов и множеств.
bormand 27.11.2014 18:36 # +1
roman-kashitsyn 27.11.2014 19:00 # 0
bormand 27.11.2014 19:03 # 0
А ну да, дошло - что-то типа слияния.
P.S. А O(n)+O(n) амортизированные или нормальные?
roman-kashitsyn 27.11.2014 19:06 # +1
bormand 27.11.2014 19:11 # 0
Банально как-то, я думал, что там есть красивое решение...
А мне вот такая задачка понравилась: есть указатель на начало связного списка, нужно определить не закольцован ли он (кольцо может начаться и где-нибудь в середине списка). Нужно решение не хуже O(n) по времени + O(1) по памяти.
roman-kashitsyn 27.11.2014 19:16 # +2
Проверить наличие кольца легко, интереснее отыскать точку начала цикла с такими же ограничениями.
Всё это неплохо описано у Степанова в первых главах Elements of Programming для произвольных преобразований вида x = f(x).
bormand 27.11.2014 19:24 # 0
Хм, скачал, почитаю. Спасибо!
> алгоритм госпера?
Скорее флойда, раз хотели константную память.
roman-kashitsyn 27.11.2014 19:34 # +1
http://www.geeksforgeeks.org/
На днях вот эту решал, доставила, хоть и простая:
bormand 27.11.2014 19:40 # +1
O_o
Анонимус 27.11.2014 19:41 # 0
Ку сама по себе структура жезж
bormand 27.11.2014 19:42 # 0
Ну да, логично.
wvxvw 27.11.2014 23:05 # +2
wvxvw 27.11.2014 23:21 # +2
1024-- 28.11.2014 07:07 # 0
bormand 28.11.2014 07:19 # 0
bormand 28.11.2014 07:37 # 0
1024-- 28.11.2014 07:57 # +1
по-моему, всё опять линейно (надеюсь, что ошибаюсь), только из-за while стэку чуть легче
bormand 28.11.2014 08:12 # +1
Тут амортизированное O(n).
Записи набиваются в один стек, а вынимаются из другого. Когда правый стек пуст - все записи из левого перебрасываются в него. В итоге на n пропущенных через очередь записей имеем 2*n вставок в стек и 2*n вытаскиваний из него (но некоторые dequeue работают дольше, чем остальные).
1024-- 28.11.2014 09:30 # 0
roman-kashitsyn 28.11.2014 10:54 # +1
LispGovno 01.12.2014 21:43 # 0
амортизированное О(1) ты хотел сказать? Тред не читал и может вы не об этом
bormand 01.12.2014 21:48 # 0
Да, конечно. Опечатался я.
roman-kashitsyn 01.12.2014 22:01 # 0
bormand 01.12.2014 22:05 # 0
Эээ, какой хеш? Там вроде бы речь шла о очереди через джва стека.
roman-kashitsyn 01.12.2014 22:20 # 0
hack2root 01.12.2014 19:46 # 0
wvxvw 01.12.2014 22:36 # 0
wvxvw 28.11.2014 11:22 # 0
О :)
Ох, не, не так... но близко. Нужно числа в качестве ключей использовать. Но переписывать влом. Так будет работать только если в кью складывать разные элементы.
wvxvw 28.11.2014 11:57 # 0
Не, все-таки сделал.
wvxvw 03.12.2014 23:46 # 0
LispGovno 01.12.2014 21:47 # 0
wvxvw 01.12.2014 22:22 # 0
3.14159265 27.11.2014 20:20 # 0
Я именно так решал эту задачу в codehurt, поскольку стандартные жаба-структуры там залочили.
3.14159265 27.11.2014 20:27 # 0
Решил битовыми наборами (хорошо что в codehurt массивы короче 32). Только там надо индексы вместо значений
bormand 27.11.2014 21:50 # 0
So, I started to read this book. It feels like a Functional Analysis lecture... My mind is cracking and blowing...
But it's a nice book and I'm enjoying the reading. Thank you!
LispGovno 27.11.2014 22:19 # +1
bormand 27.11.2014 22:28 # 0
> мову
> юзай!
I'm lol'd. What language do you speak? It's definitely not russian...
So, I'll continue to fuck your brain with my poor spelling skills. It's a very funny experience.
3.14159265 27.11.2014 19:16 # 0
bormand 27.11.2014 19:01 # 0
O(n^2) по времени и O(n) по памяти сойдет за ответ?
roman-kashitsyn 27.11.2014 19:01 # 0
inkanus-gray 27.11.2014 18:37 # +2
bormand 27.11.2014 18:39 # +1
Благодаря жабе, пожалуй, фабрика.
Анонимус 27.11.2014 18:40 # +1
3.14159265 27.11.2014 18:44 # +2
Синглтон
LispGovno 01.12.2014 21:48 # 0
Анонимус 27.11.2014 18:39 # 0
синглтА какой?
roman-kashitsyn 27.11.2014 19:13 # +4
Есть такой анекдот:
Нужно на собеседовании попросить программиста решить задачу с помощью sed. Если справится - ни за что не брать! Он, блин, всё будет этим sed делать!
sed -i -e 's/sed/шаблоны проектирования/g'
Анонимус 27.11.2014 19:18 # +1
LispGovno 01.12.2014 21:55 # 0
Я вообще не представляю как в msdn добавили такой не адекватный пример.
Или думает использовать эксепт с О(n*m) вместо амортизированного О(m).
Я вообще не представляю как в C# добавили такую тормозную штуку с такой алгоритмической сложностью.