Вдохновленный этим вопросом и уточненный Луисом Мендо .
Вызов
Учитывая двумерную матрицу целых чисел, каждая строка имеет максимальное значение. Один или несколько элементов каждой строки будут равны максимальному значению их соответствующей строки. Ваша цель состоит в том, чтобы определить, какие столбцы содержат наибольшее количество записей, равных максимальному значению их соответствующей строки, а также числу построчных максимумов, найденных в этих столбцах.
вход
- Входными данными будет непустая матрица
MxN(M> 0 иN> 0) в любой форме, подходящей для вашего языка по вашему выбору.
Выход
- Ваша программа должна возвращать индекс каждого столбца, содержащего максимальное количество построчных максимумов (либо в виде отдельных значений, либо в виде списка). Можно использовать индексацию на основе 0 или 1 (укажите в своем описании).
- Ваша программа также должна возвращать количество максимумов, которые присутствовали в этих столбцах (одно число).
- Порядок / формат вывода является гибким, но его следует пояснить в тексте, сопровождающем ваш ответ.
Дополнительная информация
- Все записи во входной матрице будут положительными целыми числами.
- Если максимальное значение строки совместно используется несколькими элементами в этой строке, все вхождения этого значения засчитываются в общую сумму их столбцов.
- Если несколько столбцов содержат одинаковое количество максимумов, вы должны вернуть список всех столбцов с таким количеством максимумов.
Пример
Рассмотрим вход
7 93
69 35
77 30
Строка 1 имеет максимум 93, что происходит только один раз, а именно в столбце 2. Строка 2: в столбце 1. Строка 3: также в столбце 1. Таким образом, столбец-победитель равен 1 с двумя максимумами. Таким образом, выход будет [1] [2]. Если мы изменим вход на
7 93
69 35
77 77
вывод будет [1 2] [2], потому что оба столбца имеют 2 максимума.
Тестовые случаи
input => output ( [1-based index array], [nMaxima] )
----------------------------------------------
7 93
69 35 => [1], [2]
77 30
7 93
69 35 => [1 2], [2]
77 77
1 2 3 4 => [4], [2]
5 6 7 8
16 2 3 13
5 11 10 8 => [1 2 4], [1]
9 7 6 12
1 1 1 1 => [1 2 3 4], [1]
25 6 13 25 => [1 4], [1]
1
2
3 => [1], [4]
4
100 => [1], [1]
счет
Это код-гольф , выигрывает самый короткий код в байтах. Tiebreaker переходит к более раннему ответу.
Leaderboard
Ниже приведен фрагмент стека для анализа всех записей.