From 853243a20ed6d6afe9f5c5ad112d662f3d02eb65 Mon Sep 17 00:00:00 2001 From: roylx <73628821+roylx@users.noreply.github.com> Date: Tue, 18 Oct 2022 11:30:57 -0600 Subject: [PATCH] =?UTF-8?q?Update=200332.=E9=87=8D=E6=96=B0=E5=AE=89?= =?UTF-8?q?=E6=8E=92=E8=A1=8C=E7=A8=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化了phython3的代码,把排序部分提前完成,避免重复排序 --- problems/0332.重新安排行程.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/problems/0332.重新安排行程.md b/problems/0332.重新安排行程.md index 90756d7d..84147532 100644 --- a/problems/0332.重新安排行程.md +++ b/problems/0332.重新安排行程.md @@ -355,16 +355,18 @@ class Solution: tickets_dict = defaultdict(list) for item in tickets: tickets_dict[item[0]].append(item[1]) + # 给每一个机场的到达机场排序,小的在前面,在回溯里首先被pop(0)出去 + # 这样最先找的的path就是排序最小的答案,直接返回 + for airport in tickets_dict: tickets_dict[airport].sort() ''' tickets_dict里面的内容是这样的 - {'JFK': ['SFO', 'ATL'], 'SFO': ['ATL'], 'ATL': ['JFK', 'SFO']}) + {'JFK': ['ATL', 'SFO'], 'SFO': ['ATL'], 'ATL': ['JFK', 'SFO']}) ''' path = ["JFK"] def backtracking(start_point): # 终止条件 if len(path) == len(tickets) + 1: return True - tickets_dict[start_point].sort() for _ in tickets_dict[start_point]: #必须及时删除,避免出现死循环 end_point = tickets_dict[start_point].pop(0)