首页 > 解决方案 > 检查有限二维数组是否可以形成对角线的最有效方法

问题描述

假设我有这样的数据结构

    int arr[3][3] = {
        {1, 1},
        {1, 2},
        {0, 2}
    };

其中内部数组中的第一个数字对应于最小值,第二个数字对应于最大值。它看起来像这样。

像这样。

检查某些列调整后是否可以形成对角线的最有效方法是什么。

像这样

标签: algorithmperformancemultidimensional-array

解决方案


在最终解决方案中,您将数组的每一行与该行中indes[i][i]存在的列匹配。这是一种匹配算法,您可以在此处找到 将二分图创建为部分行A和部分最终对角线的索引Brow i在之间和diagonal j何时创建边缘A[i][0]<=j and A[i][1]>=j,然后在其上运行匈牙利匹配。


推荐阅读