Solution1 BFS
时间复杂度 O((n ^ 2) * (2 ^ n))
常规的 BFS 时间复杂度是 O(n + m) n 是节点数,m 是边数。
本题引入 mask 其最大值是 2 ^ n。可以看做是进行了 2 ^ n 次常规 BFS
本题 m 没有显示给出,考虑最坏情况下的完全图 有 n^2 条边。
空间复杂度 O(n * (2 ^ n))
即 que 占得空间
由于点可以重复访问,我们使用三元组 (u,mask,dist) 表示队列中的每一个元素
u 当前节点编号
mask 一个长度为 n 的二进制数,表示每一个节点是否经过。第 i 位为 1,表示 i 经过过
dist 表示到当前节点为止所经过的路径长度
visited 数组中也不同于常规的 BFS 只保存访问过的节点,还要保存节点对应的 mask 状态
在搜索的过程中,如果当前三元组中的 mask 包含 n 个 1(即 mask=2^n-1 那么我们就可以返回 dist 作为答案
Last updated