|
1 / 0 / 1
Регистрация: 08.09.2018
Сообщений: 46
|
|
Как проверить вхождение элемента в массив эффективным образом?15.09.2018, 18:58. Показов 16464. Ответов 55
Метки нет (Все метки)
Встала задача:
Даны два массива, элементы которых упорядочены по возрастанию (и зачем это дали?). Найти количество уникальных элементов, то есть, которые входят в один массив, но не входят в другой. Пример a[5] = {1,2,3,4,5,6} b[6] = {3,4,5,6,7,8,9} результатом будет 5 (1,2,7,8,9) Сначала решил через множества: нашел разность a-b; b-a; затем объединил их и получил количество уникальных элементов. но вроде не пахнет эффективным решением, да и без массивов.. не думаю, что зачтут такую задачу.. Помогите с идеями, как подойти к задаче?) Спасибо всем большое.
0
|
|
| 15.09.2018, 18:58 | |
|
Ответы с готовыми решениями:
55
Вхождение одного элемента в другой массив
|
|
Модератор
13781 / 10974 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
|
||||||
| 15.09.2018, 19:47 | ||||||
|
можно через map (и сортировать необязательно):
1
|
||||||
|
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
|
||||||
| 15.09.2018, 20:20 | ||||||
|
fanfuntik,
1
|
||||||
|
1 / 0 / 1
Регистрация: 08.09.2018
Сообщений: 46
|
||
| 19.09.2018, 16:08 [ТС] | ||
|
0
|
||
|
Модератор
|
||
| 19.09.2018, 16:14 | ||
|
1
|
||
|
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
|
||
| 19.09.2018, 16:20 | ||
|
1
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,819
|
||||||
| 19.09.2018, 16:30 | ||||||
|
fanfuntik, можно биты использовать, как индикаторы того, есть ли число в массиве или нет. Затем просто сделать xor. Будет быстро.
Набросок:
2
|
||||||
|
Неэпический
|
||||||||||||
| 21.09.2018, 12:37 | ||||||||||||
Добавлено через 7 минут fix:
2
|
||||||||||||
|
Модератор
|
|||||||||||
| 23.09.2018, 08:28 | |||||||||||
|
Croessmah, не всегда работает, как ожидается. Например, с массивами
1 2 8 9 получается такое:Использовал вариант твоего кода с исправлением: Croessmah's unique_difference (2nd edition)
0
|
|||||||||||
|
1 / 0 / 1
Регистрация: 08.09.2018
Сообщений: 46
|
|
| 23.09.2018, 11:16 [ТС] | |
|
все нормально, в условии задачи даны упорядоченные массивы.
Добавлено через 32 секунды спасибо большое за ваши идеи и подходы. пробовал сделать, препод смотрит как на дурака, говорит, проще можно и без использования дополнительных сетов и прочее. два решения своих приносил (множества, банальный перебор), отсюда взял идею битсета - не принимает. уже идей никаких не осталось. кто-нибудь знает, эффективнее перебора и без использования библиотек что может быть? если записать оба массива, и сделать бинарный поиск каждого элемента одного массива в другом (и наоборот элементы другого ищутся в первом) нормально будет? или слишком мудрено?
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 23.09.2018, 11:33 | |
|
0
|
|
|
Модератор
|
||||||
| 23.09.2018, 11:36 | ||||||
|
fanfuntik, а в одном массиве могут быть повторяющиеся элементы? Скажем, вот такой вариант может быть?
0
|
||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 23.09.2018, 11:38 | ||
|
пересечение начинается по первому элементу второго массива и заканчивается по последнему элементу первого массива
0
|
||
|
Модератор
|
||||||
| 23.09.2018, 12:35 | ||||||
0
|
||||||
|
Неэпический
|
||||||
| 23.09.2018, 12:56 | ||||||
|
Ну, можно еще мой код от шаблона избавить:
fanfuntik, а нужно найти только количество? ![]() А я то тут... найти количество можно и проще. )))
0
|
||||||
|
Модератор
|
||||||
| 23.09.2018, 12:59 | ||||||
0
|
||||||
|
30 / 21 / 8
Регистрация: 23.09.2018
Сообщений: 186
|
||||||||||||
| 23.09.2018, 18:31 | ||||||||||||
0
|
||||||||||||
|
Неэпический
|
|||
| 23.09.2018, 19:39 | |||
![]() Смотрим что должно получиться при таких входных данных: 5 (1,2,7,8,9) Смотрим что выдает Ваш код: http://rextester.com/SXUN6159
Моя хрень делает это за линейное время.
1
|
|||
| 23.09.2018, 19:39 | |
|
Помогаю со студенческими работами здесь
20
Как проверить условие отсутствия в строке элемента необходимого столбца( массив одномерных массивов) Как проверить вхождение значения переменной в диапазон enum? Как проверить, есть ли в ячейке вхождение одной из строк? Как проверить на однократное вхождение точки в строку, причем только в конце строки? Заполните случайным образом одномерный массив из n элементов и определите номер элемента Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|