【发布时间】:2019-07-18 05:54:57
【问题描述】:
假设我有一个矩阵(Python 中的二维列表),我想创建另一个矩阵,其中所有元素的排名基于它们所在的行和列。条件是:
- 排名应该从 1 开始
- 应为同一行或同一列中的相同元素提供相同的排名
- 如果根据特定的行或列排名,相同元素位于不同的行或列中,它们可能具有不同的排名
- 最大排名应尽可能小
假设给定的 5X5 矩阵为:
18, 25, 7, 11, 11
33, 37, 14, 22, 25
29, 29, 11, 14, 11
25, 25, 14, 14, 11
29, 25, 14, 11, 7
预期的输出是:
3, 4, 1, 2, 2
6, 7, 3, 4, 5
5, 5, 2, 3, 2
4, 4, 3, 3, 2
5, 4, 3, 2, 1
如何用 Python 或任何编程语言编写此代码,或者解决此问题的算法是什么?
【问题讨论】: