題目地址:
https://leetcode.com/problems/destination-city/
給定一個數組,每一行含兩個字符串分別代表兩個城市,含義是第一個城市可以直達第二個城市。求那個只作爲終點不作爲起點的城市。題目保證答案存在且唯一。
思路是用一個哈希表,先把作爲終點的城市全加進來,然後再把作爲起點的城市全刪掉,題目保證答案只有一個,所以最後直接返回哈希表裏僅剩的城市即可。代碼如下:
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Solution {
public String destCity(List<List<String>> paths) {
Set<String> set = new HashSet<>();
for (List<String> path : paths) {
set.add(path.get(1));
}
for (List<String> path : paths) {
set.remove(path.get(0));
}
return set.iterator().next();
}
}
時間複雜度。