【问题标题】:Finding indices of unique rows and columns in a 2D array and the minimum sum of the elements in those positions查找二维数组中唯一行和列的索引以及这些位置中元素的最小总和
【发布时间】:2020-04-19 15:20:52
【问题描述】:

我偶然发现了一个问题,我得到了一个 2D 数组形式的 5x5 矩阵,我应该找到 5 个元素的最小总和,其中每个元素应该在唯一的行和列中并打印索引这些元素和最小总和。

本题以3个测试用例为例。

测试用例 1:

{
{5, 4, 4, 1, 6},
{1, 3, 2, 4, 6},
{3, 2, 3, 2, 6},
{0, 4, 5, 4, 6},
(6, 6, 6, 6, 6}
};

Output: (3,0) (2,1) (1,2) (0,3) (4,4)
Minimum sum: 11

测试用例 2:

{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
};

Output: (0,0) (1,1) (2,2) (3,3) (4,4)
Minimum sum: 0

测试用例 3:

{
{1, 2, 3, 4, 5},
{5, 4, 3, 2, 1},
{1, 2, 7, 4, 5},
{5, 4, 3, 2, 1},
{1, 2, 3, 4, 5},
};

Output: (0,0) (2,1) (4,2) (1,3) (3,4)
Minimum sum: 9

我想了解当他们说唯一的行和列时是什么意思,我从测试用例中看到的只是列索引从 0 开始,每对索引都增加一个。我想知道如何解决这个问题。

【问题讨论】:

  • @chigo14 用 C++ 编写程序很容易,因为它具备编写此类程序所需的一切。:)
  • @chigo14 你需要写一个产生排列的函数。

标签: c arrays matrix


【解决方案1】:

唯一的行和列意味着没有两个元素共享一行或一列。

在这里,我突出显示了选定的数字。

You can see that when a number is selected, No other number in that same column is also selected.没有选择同一行中的其他数字。

5 4 4 1 6
1 3 2 4 6
3 2 3 2 6
0 4 5 4 6
6 6 6 6 6

1 + 2 + 2 + 0 + 6 = 11

【讨论】:

  • 那么如何解决求最小和的问题呢?
猜你喜欢
  • 2022-11-19
  • 2014-03-05
  • 2021-03-15
  • 1970-01-01
  • 2018-10-17
  • 2021-02-03
  • 2016-02-24
  • 1970-01-01
  • 2019-08-28
相关资源
最近更新 更多