TheDeadSkin #541 3 августа 2015 вы че таких элементарных вещей не знаете, выжпрограамисты да я чето подумал ты про power set говоришь и не мог догнать каким боком оно тут вообще Поделиться сообщением Ссылка на сообщение
Just.Doit #542 3 августа 2015 (изменено) то что ты пишешь "по комбинаторике" такого нету нигде кроме SQL, либо это несколько разных операций теории множеств, примененные друг за другомелси "все "пересечения"" (хотя это не пересечение вовсе) то это называется декартово произведение и тогда на выходе будут кортежи (из двух элементов) всех комбинаций элементов первого массива со всеми элементами второго (кросс джоин в sql)вообще да, согласен нужно уточнять что имелось ввиду. Изменено 3 августа 2015 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
TheDeadSkin #543 3 августа 2015 Just.doitПри клике на "откликнуться" там кинуло на 4 вопроса сразу, на которые надо прислать ответ вместе с резюме. Вот одним из вопросов было это, в итоге мне приплыл отказ. Я до этого делал 3 цикла, типа цикл по А - цикл по Б - если совпадение, то цикл по С и нахождение повтора, если повтора нет то запись в С. Мне ответилиДобрый день, Виктор!В 4-ом вопросе тестового задания мы просили "функцию, которая максимально быстро ...", а Вами был применен самый медленный алгоритм из возможных (алгоритмическая сложность более чем N*M)потому что worst case твоих трёх циклов это вообще около (n*k)^2, что есть слишком дохуя и действительно самый медленный из возможных вариантов Поделиться сообщением Ссылка на сообщение
Just.Doit #544 3 августа 2015 Just.doitПри клике на "откликнуться" там кинуло на 4 вопроса сразу, на которые надо прислать ответ вместе с резюме. Вот одним из вопросов было это, в итоге мне приплыл отказ. Я до этого делал 3 цикла, типа цикл по А - цикл по Б - если совпадение, то цикл по С и нахождение повтора, если повтора нет то запись в С. Мне ответилиДобрый день, Виктор!В 4-ом вопросе тестового задания мы просили "функцию, которая максимально быстро ...", а Вами был применен самый медленный алгоритм из возможных (алгоритмическая сложность более чем N*M)откликнесь еще раз и скопируй заданиеты же не отсылаешь своей инфы при отклике и получении задания, как я понял очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
Feanaro #545 3 августа 2015 (изменено) Если я сейчас после этого отказа у них попрошу второй шанс, при этом спросив "а шо такое пересечение массивов?", то имхо меня просто нахуй пошлют и всё тут Just.doitПри клике на "откликнуться" там кинуло на 4 вопроса сразу, на которые надо прислать ответ вместе с резюме. Вот одним из вопросов было это, в итоге мне приплыл отказ. Я до этого делал 3 цикла, типа цикл по А - цикл по Б - если совпадение, то цикл по С и нахождение повтора, если повтора нет то запись в С. Мне ответилиДобрый день, Виктор!В 4-ом вопросе тестового задания мы просили "функцию, которая максимально быстро ...", а Вами был применен самый медленный алгоритм из возможных (алгоритмическая сложность более чем N*M)откликнесь еще раз и скопируй заданиеты же не отсылаешь своей инфы при отклике и получении задания, как я понялДля этого надо новый акк регать вместе с заполнением резюме етс, оно не позволяет с одного акка два раза откликаться на одну вакансию Изменено 3 августа 2015 пользователем Feanaro Поделиться сообщением Ссылка на сообщение
TheDeadSkin #546 3 августа 2015 (изменено) то что ты пишешь "по комбинаторике" такого нету нигде кроме SQLелси "все "пересечения"" (хотя это не пересечение вовсе) то это называется декартово произведение и тогда на выходе будут кортежи (из двух элементов) всех комбинаций элементов первого массива со всеми элементами второго (кросс джоин в sql)вообще да, согласен нужно уточнять что имелось ввиду.ну я это и имел ввиду, это в принципе и есть что-то типа декартового произведенияпросто я не вижу абсолютно никакого практического смысла применения тут именно пересечения мультисетовно в теории да, если массив = мультисет, то пересечение именно таким и будет Если я сейчас после этого отказа у них попрошу второй шанс, при этом спросив "а шо такое пересечение массивов?", то имхо меня просто нахуй пошлют и всё тутну то твоё решение ни для одного из возможных вариантов чем может быть пересечение не будет подходящим, потому что там даже близко не n*kтак что по факту ты им уже не подошёл Изменено 3 августа 2015 пользователем TheDeadSkin Поделиться сообщением Ссылка на сообщение
Feanaro #547 3 августа 2015 По-моему мне стоит просто написать, что если вы подразумеваете повторение элементов в выходном массиве, то будет вот эта функция: .... Если же элементы не должны повторяться, то я бы использовал сортировку..... и в итоге функция имела бы вид. .... Поделиться сообщением Ссылка на сообщение
Kant #548 3 августа 2015 горд за топан Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Just.Doit #549 3 августа 2015 (изменено) ну практическое применение - есть 2 склада (множества-массивы). там детали лежат. бывают детали от разных изделий (изделие 1, изделие 2, изделие 3, изделие MAX_UNSIGNED_INT). деталь, принадлежащая изделию X - это X численное значение элемента массива.и вот представь что изделия состоят только из детали со склада 1 и детали со склада 2. вопрос как найти перечень/количество изделий которые мы можем собрать сейчас. Изменено 3 августа 2015 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
TheDeadSkin #550 3 августа 2015 ну практическое применение - есть 2 склада (множества-массивы). там детали лежат. бывают детали от разных изделий (изделие 1, изделие 2, изделие 3, изделие MAX_UNSIGNED_INT). деталь, принадлежащая изделию X - это X численное значение элемента массива.и вот представь что изделия состоят только из детали со склада 1 и детали со склада 2. вопрос как найти перечень изделий которые мы можем собрать сейчас.окей, убедил Поделиться сообщением Ссылка на сообщение
Just.Doit #551 3 августа 2015 По-моему мне стоит просто написать, что если вы подразумеваете повторение элементов в выходном массиве, то будет вот эта функция: ....Если же элементы не должны повторяться, то я бы использовал сортировку..... и в итоге функция имела бы вид. ....вообще надо копировать изначально задание и перечитывать много много раз (с первого раза почти всегда не понятно что имели ввиду в точности)бывает даже после 100 раз перечитывания постановки задачи - что-то непонятно (может автор не уточнил, может ты чего не понял тк не встречался с этим) - тогда ты идешь задавать уточняющие вопросы тому кто составлял задание или тому кто проверять будет.мне обычно всегда сразу писали после высылки ТестЗад - "если есть вопросы по заданию - пишите/спрашивайте, мы перешлем ответ наших специалистов (тк непосредственное общение шло с кадровиком)"если по какой-то причине нет никакой возможности все это сделать - то для максимального результата, если есть желание и время - рассмотреть наиболее вероятные варианты. 2-3 достаточно. + это дополнительно нанимателю даст инфу о том что ты по разному можешь решить в различных условиях + сами скиллзы твои раскроются больше в различных (по сути) задачах ( типа в одном ты map использовал, в другом умную сортировку, а в третьем случае простой перебор - покажет что ты со всем этим как минимум умеешь работать) но оптимальный вариант это максимально разобраться в том что имели ввиду и решать только наиболее вероятный вариант, при этом наиболее качественно его решить. тоесть мне было бы лень 2-3 случая рассматривать и по каждому хорошее решение предоставлять. я бы взял наиболее вероятный/логичный случай, либо просто наиболее "общий случай" и решал бы его как единственное задание, забив на другие варианты.ибо лень очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
TheDeadSkin #552 3 августа 2015 (изменено) вообще надо копировать изначально задание и перечитывать много много раз (с первого раза почти всегда не понятно что имели ввиду в точности)бывает даже после 100 раз перечитывания постановки задачи - что-то непонятно (может автор не уточнил, может ты чего не понял тк не встречался с этим) - тогда ты идешь задавать уточняющие вопросы тому кто составлял задание или тому кто проверять будет.мне обычно всегда сразу писали после высылки ТестЗад - "если есть вопросы по заданию - пишите/спрашивайте, мы перешлем ответ наших специалистов (тк непосредственное общение шло с кадровиком)"если по какой-то причине нет никакой возможности все это сделать - то для максимального результата, если есть желание и время - рассмотреть наиболее вероятные варианты. 2-3 достаточно. + это дополнительно нанимателю даст инфу о том что ты по разному можешь решить в различных условиях + сами скиллзы твои раскроются больше в различных (по сути) задачах ( типа в одном ты map использовал, в другом умную сортировку, а в третьем случае простой перебор - покажет что ты со всем этим как минимум умеешь работать) но оптимальный вариант это максимально разобраться в том что имели ввиду и решать только наиболее вероятный вариант, при этом наиболее качественно его решить.тоесть мне было бы лень 2-3 случая рассматривать и по каждому хорошее решение предоставлять. я бы взял наиболее вероятный/логичный случай, либо просто наиболее "общий случай" и решал бы его как единственное задание, забив на другие варианты.ибо леньподписываюсь под каждым словом 2 варианта тут было бы достаточно* ровно n*k через брут когда мы имеем на выходе дубликаты как будто это математическое пересечение двух мультимножеств* через две сортировки + проход в n+k для того чтоб можно было отсеять дубликаты и при этом не выйти за пределы n*k Изменено 3 августа 2015 пользователем TheDeadSkin Поделиться сообщением Ссылка на сообщение
Feanaro #553 3 августа 2015 Нашёл в гугле вот это:Пересечение двух массивов A и B — это массив только с теми элементами A и B, которые одновременно принадлежат обоим массивам, без дублей.Сложность алгоритма O(m*n), где m и n — длины входных массивов A и B соответственно.function intersection(A, B) { var m = A.length, n = B.length, c = 0, C = []; for (var i = 0; i < m; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < n) j++; while (C[k] !== A[ i ] && k < c) k++; if (j != n && k == c) C[c++] = A[ i ]; } return C; } Хуй знает, на самом деле Гляньте, тут реально n*m? Поделиться сообщением Ссылка на сообщение
KotZhilkina #554 3 августа 2015 Нашёл в гугле вот это:Пересечение двух массивов A и B — это массив только с теми элементами A и B, которые одновременно принадлежат обоим массивам, без дублей.Сложность алгоритма O(m*n), где m и n — длины входных массивов A и B соответственно.function intersection(A, B) { var m = A.length, n = B.length, c = 0, C = []; for (var i = 0; i < m; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < n) j++; while (C[k] !== A[ i ] && k < c) k++; if (j != n && k == c) C[c++] = A[ i ]; } return C; } Хуй знает, на самом деле Гляньте, тут реально n*m?вообще сложность, как О(m*n) нельзя определять Публикация отключена Поделиться сообщением Ссылка на сообщение
Lorde - Sober ll #555 3 августа 2015 камус мне ттут пару дней назад помогал советом по форме с отправкой изображений (л0л), хочу сказать спасибо, рил самый изи вариант был have courage and be kind 😈🫀💋 🩸👣🤌🏿🦄 🐝✨ ⚡️ ☄️❣️ 💕 💞❤️😈 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 Поделиться сообщением Ссылка на сообщение
Just.Doit #556 3 августа 2015 Нашёл в гугле вот это:Пересечение двух массивов A и B — это массив только с теми элементами A и B, которые одновременно принадлежат обоим массивам, без дублей.Сложность алгоритма O(m*n), где m и n — длины входных массивов A и B соответственно.function intersection(A, B) { var m = A.length, n = B.length, c = 0, C = []; for (var i = 0; i < m; i++) { var j = 0, k = 0; while (B[j] !== A[ i ] && j < n) j++; while (C[k] !== A[ i ] && k < c) k++; if (j != n && k == c) C[c++] = A[ i ]; } return C; } Хуй знает, на самом деле Гляньте, тут реально n*m?тут чуть больше n*m. точнее n*m+(с^2)/2, где c - количество пересеченийтоесть медленно работает если пересечений много очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
TheDeadSkin #557 3 августа 2015 выглядит как m*n только я пока не до конца понял как оно работает вообще сложность, как О(m*n) нельзя определятьсхуяли? Поделиться сообщением Ссылка на сообщение
jsfwa #558 3 августа 2015 sort(A); sort(B); while (i < n && j < k) { if (A[i] == B[j]) { C[it++] = A[i]; i++; j++; } else if (A[i] > B[j]) j++; else i++; } Что-нить подобное выдаст тебе в лучшем случае O(n log n) + O(k log k) + min(n, k), или в худшем + (n + k)Единственная проблема, что если размеры массивов меньше 6, то n*k будет меньше, чем сортировка + проход. Про пересечение [2, 2] & [2] = [2, 2] улыбнуло. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #559 3 августа 2015 (изменено) теоретическая сложность (котора через О нотацию) у него таки m*n но вообще у него функции по скорости слабые какие-то всё-равно, он сделал немногим лучше чем вариант который финаро отправил с 3 циклами, только поиск дубликатов у него на порядок быстрее в среднем, а worst-case для них почти одинаков для сортируемых объектов (а сортируемы считай все) через сортировку всё-равно должно быть гораздо быстрее чем O(m*n) при даже совсем небольших массивах Изменено 3 августа 2015 пользователем TheDeadSkin Поделиться сообщением Ссылка на сообщение
Let'sPlayBetter #560 3 августа 2015 мне интересно стоит ли сейчас начинать изучать j2se и j2ee ? Поделиться сообщением Ссылка на сообщение