📌  相关文章
📜  检查满足给定条件的图中是否存在长度为 3 的循环

📅  最后修改于: 2021-10-25 03:09:00             🧑  作者: Mango

给定一个由N 个整数组成的数组 Arr表示图的节点。边是在按位 AND 不等于0 的那些对之间定义的。任务是找出图中是否存在长度为 3 的循环。
例子:

天真的方法:
运行嵌套循环并检查每对之间是否存在边(如果它们的按位 AND 值非零)。因此,我们形成整个图并通过使用任何循环检测方法检查该图中是否存在循环。
有效的方法:

  • 通过连接至少3 个边形成一个循环。
  • 这个想法是制作一个二维数组,其中第 i 行存储 Arr[i] 的二进制值。
  • 接下来,以列方式循环并检查是否存在 1 的数量至少为 3 的列。
    • 如果是,则说明图中存在环。
    • 如果不存在这样的列,则表示图中不存在环。

下面是上述方法的实现:

代码块

输出:
Yes