題目:原題鏈接(簡單)
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | 40ms (83.01%) | ||
Ans 2 (Python) | 36ms (94.12%) | ||
Ans 3 (Python) |
LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。
解法一(雙集合):
def destCity(self, paths: List[List[str]]) -> str:
maybe = set()
wrong = set()
for path in paths:
wrong.add(path[0])
maybe.add(path[1])
return (maybe - wrong).pop()
解法二(增加跳出循環,提高效率):
def destCity(self, paths: List[List[str]]) -> str:
paths = list(zip(*paths))
wrong = set(paths[0])
for path in paths[1]:
if path not in wrong:
return path