首页 > 解决方案 > 找到一个图,它有 6 个顶点,每个顶点都是边的结束或开始,代码返回数字 2

问题描述

我正在尝试创建一个图,它有 6 个顶点,它的所有顶点都是有向边的开始或结束,下面的代码返回数字 2。代码中的数组 G 是邻接矩阵。

public static int exam(boolean[][] g){
 int r = 0;
 for (int i=0; i<g.length; i++){
  for (int j = i+1; j<g.length; j++){
   if (g[i][j] && g[j][i]){
    r++;
   }
  }
 }
 return r;
}

我的解决方案是这张

这是对的吗?谢谢!

标签: javagraph

解决方案


从您写的内容来看,您似乎正在计算连接双向的点对的数量。在您链接的图表中,连接 (0,1) 和 (4,5) 分别与 (1,0) 和 (5,4) 共享点对。因此,该函数按预期返回 2。

我假设矩阵看起来有点像这样:(0 = false,1 = true)

{{0,1,0,0,0,0},
 {1,0,1,0,0,0},
 {0,0,0,1,0,0},
 {0,0,0,0,1,0},
 {0,0,0,0,0,1},
 {1,0,0,0,1,0}}

如您所见,对角线为零,因为点不连接到自己。跨对角线镜像并等于1连接双向的值。


推荐阅读