Update 0332.重新安排行程.md

优化了phython3的代码,把排序部分提前完成,避免重复排序
This commit is contained in:
roylx
2022-10-18 11:30:57 -06:00
committed by GitHub
parent 237728f703
commit 853243a20e

View File

@ -355,16 +355,18 @@ class Solution:
tickets_dict = defaultdict(list) tickets_dict = defaultdict(list)
for item in tickets: for item in tickets:
tickets_dict[item[0]].append(item[1]) tickets_dict[item[0]].append(item[1])
# 给每一个机场的到达机场排序小的在前面在回溯里首先被pop(0出去
# 这样最先找的的path就是排序最小的答案直接返回
for airport in tickets_dict: tickets_dict[airport].sort()
''' '''
tickets_dict里面的内容是这样的 tickets_dict里面的内容是这样的
{'JFK': ['SFO', 'ATL'], 'SFO': ['ATL'], 'ATL': ['JFK', 'SFO']}) {'JFK': ['ATL', 'SFO'], 'SFO': ['ATL'], 'ATL': ['JFK', 'SFO']})
''' '''
path = ["JFK"] path = ["JFK"]
def backtracking(start_point): def backtracking(start_point):
# 终止条件 # 终止条件
if len(path) == len(tickets) + 1: if len(path) == len(tickets) + 1:
return True return True
tickets_dict[start_point].sort()
for _ in tickets_dict[start_point]: for _ in tickets_dict[start_point]:
#必须及时删除,避免出现死循环 #必须及时删除,避免出现死循环
end_point = tickets_dict[start_point].pop(0) end_point = tickets_dict[start_point].pop(0)