Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2019, 19:59   #1
Viktor77777
Новичок
Джуниор
 
Регистрация: 11.12.2019
Сообщений: 1
По умолчанию Найти множество строк матрицы максимальной размерности, в котором все строки попарно непохожи друг на друга

Дана целочисленная матрица, в которой имеется N строк, а число элементов в строке для каждой строки может быть любым, в том числе нулевым. Строки назовем похожими, если совпадают множества чисел, встречающихся в этих строках. Найти множество строк этой матрицы максимальной размерности, в котором все строки попарно непохожи друг на друга. Из похожих строк в множество включить строку с наименьшим номером.

Пример. Матрица содержит 3 строки:

1 2 2 4 4;
4 2 1 4;
3 2 4 1 5 8;

Первые 2 строки похожи друг на друга и непохожи на 3 строку. Ответом будет множество из 1 и 3 строк.

В классе MatrixNonSimilarRows должен быть конструктор
Код:
public MatrixNonSimilarRows(int[][] matrix){
        this.matrix=matrix;
    }
И один метод public Set<int[]> getNonSimilarRows()

И должен выполняться тест
Код:
@Test
    public void testMatrixSimilarRows() {
        int[][] matrix1 = {{}, {1, 2, 2, 4, 4}, {4, 2, 1, 4}, {3, 2, 4, 1, 5, 8}, {2, 3, 1, 4, 1, 5, 8}, {1, 8, 1, 1, 8}};
        Set<int[]> nonSimilarRows1 = new MatrixNonSimilarRows(matrix1).getNonSimilarRows();
        assertEquals(4, nonSimilarRows1.size());
        assertTrue(nonSimilarRows1.contains(matrix1[0]));
        assertTrue(nonSimilarRows1.contains(matrix1[1]));
        assertTrue(nonSimilarRows1.contains(matrix1[3]));
        assertTrue(nonSimilarRows1.contains(matrix1[5]));
        int[][] matrix2 = {{1, 2, 2, 4, 4}, {4, 5, 1, 4}, {2, 4, 1}, {2, 4, 1, 4, 1, 2}, {1, 8, 1, 1, 8}};
        Set<int[]> nonSimilarRows2 = new MatrixNonSimilarRows(matrix2).getNonSimilarRows();
        assertEquals(3, nonSimilarRows2.size());
        assertTrue(nonSimilarRows2.contains(matrix2[0]));
        assertTrue(nonSimilarRows2.contains(matrix2[1]));
        assertTrue(nonSimilarRows2.contains(matrix2[4]));
    }
200р за решение
Viktor77777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить количество строк в максимальном множестве попарно непохожих строк заданной матрицы Cи/С++ FleXt Помощь студентам 12 17.12.2012 14:42
Дан текст, в котором слова отделяются друг от друга пробелами, удалить из текста все повторно встречающиеся слова Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2011 11:03
найти друг друга в сети (динамические IP) Лубышев Общие вопросы Delphi 2 21.08.2010 16:30