💡
原文英文,约1300词,阅读约需5分钟。
📝
内容提要
给定一个无向图,节点编号从1到n,要求将节点分成最多m组,且相邻节点的组索引差为1。如果图不是二分图,则返回-1。通过BFS验证图的二分性并计算最大深度,最终返回所有连通分量的深度总和。
🎯
关键要点
- 给定一个无向图,节点编号从1到n。
- 要求将节点分成最多m组,且相邻节点的组索引差为1。
- 如果图不是二分图,则返回-1。
- 通过BFS验证图的二分性并计算最大深度。
- 最终返回所有连通分量的深度总和。
- 图可能是断开的。
- 对于每个连通分量,检查其是否为二分图。
- 使用BFS来验证二分性。
- 使用并查集有效地分组连通分量。
- 构建邻接表表示图。
- 对每个节点使用BFS检查图的二分性并计算该分量的最大深度。
- 返回所有分量深度的总和作为结果。
- 如果任何分量不是二分图,则返回-1。
- 时间复杂度为O(N + E),其中N是节点数,E是边数。
➡️