无向连通图的最短路径!!!
参考:https://www.cnblogs.com/MrSaver/p/9465181.html
思路:
from collections import deque, namedtuple
class Solution(object):
def shortestPathLength(self, graph):
"""
:type graph: List[List[int]]
:rtype: int
"""
GraphNode = namedtuple('GraphNode',['id','nodes_visited'])
N = len(graph) # 总的结点个数
q = deque() # 用队列实现广度优先搜索
# 起始节点
for n in range(N):
q.append(GraphNode(n, 1<<n)) # 1<<n 意思就是1按位左移n个单位
# 所有节点
all_nodes = 0
for i in range(N):
all_nodes = all_nodes | (1<<i) # 把1左移i位