Java Generics, Создайте экземпляр Class

У меня есть, например, 5 массивов с некоторыми вставленными элементами (числами):

1, 4 , 8,10
1,2,3, 4 , 11,15
2, 4 , 20,21
2 , 30

Мне нужно найти наиболее распространенных элементов в этих массивах, и каждый элемент должен пройти весь путь до конец (см. пример ниже). В этом примере это будет комбинация, выделенная жирным шрифтом (или такая же, но с цифрой «30» на конце, это «то же самое»), потому что она содержит наименьшее количество различных элементов (только два, 4 и 2/30).

Эта комбинация (см. Ниже) не очень хороша, потому что если у меня, например «4» он должен «пройти» до конца (следующий массив вообще не должен содержать «4»). Таким образом, комбинация должна идти до конца.

1, 4 , 8,10
1, 2 , 3,4,11,15
2 , 4,20,21
2 , 30

EDIT2: OR

1, 4 , 8,10
1,2,3, 4 , 11,15
2 , 4,20,21
2 , 30

ИЛИ что-то еще НЕ хорошо.

Есть ли какой-нибудь алгоритм для ускорения этого процесса (если у меня есть тысячи массивов с сотнями элементов в каждом)?

Чтобы было понятно - решение должно содержать наименьшее количество различных элементов и групп (одинаковых числа) должны быть сгруппированы от первого - большего до последнего - самого маленького. Итак, в верхнем примере 4,4,4,2 лучше, чем 4,2,2,2, потому что в первом примере группа из 4 больше, чем группа из 2 .

РЕДАКТИРОВАТЬ: Чтобы быть более конкретным . Решение должно содержать наименьшее количество различных элементов , и эти элементы должны быть сгруппированы от первого до последнего . Итак, если у меня есть три массива типа

1,2,3
1,4,5
Я хотел бы запустить команду в базе данных, чтобы получить этот оператор «AS», чтобы я мог сравнить его с ожидаемым значением. (Я разрабатываю синтаксический анализатор SQL, который будет сравнивать существующую базу данных с определением DDL) ...

Возможно ли это?

11
задан marc_s 18 February 2011 в 22:09
поделиться