题目描述
从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。
输入描述
输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150
输入格式:
N M K
N*M矩阵
输出描述
N*M 的矩阵中可以选出 M! / N! 种组合数组,每个组合数组种第 K 大的数中的最小值。无需考虑重复数字,直接取字典排序结果即可。
注意:结果是第 K 大的数字的最小值
用例
输入
3 4 2
1 5 6 6
8 3 4 3
6 8 6 3
输出
3
N*M的矩阵中可以选出 M!/ N!种组合数组,每个组合数组种第 K 大的数中的最小值;
上述输入中选出数组组合为:
1,3,6;
1,3,3;
1,4,8;
1,4,3;
…
上述输入样例中选出的组合数组有24种,最小数组为1,3,3,则第2大的最小值为3

本文介绍了华为OD机试中的一道矩阵匹配题目,要求从N*M矩阵中选择N个数,确保没有同行或同列,求解第K大的最小数值。提供了解题思路和C++、Java、JavaScript、Python、C语言的实现代码,并附带多个测试用例。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



