Last updated
Last updated
在 2 Sum 裡面,有一個比較高效率的解法,就是使用 Hash Table 來解決問題,這題物件的題目就很簡單,不過有一個小地方要注意,那就是之前我們的 Hash Table 是記錄元素在陣列中的位置,但是這個物件讀取資料的方式是透過 Data Stream 的方式讀入,我們並沒有儲存位置,我們反而是記錄這個數字出現的次數。
可是這樣就會有一個問題要注意,例子是如果我先輸入一個 2
。接著,程式收到指令,再去找看看有沒有兩個數字的總和是 4
,這個情況底下,我要找的另外一個數字也是 2
,所以要判斷兩個情況:
如果 2 Sum 是兩個一樣的數字,要檢查是否該數字已經輸入過了兩次
如果不同,那就只要判斷另外一個數字是否存在就好
這一題也可以用雙指針來寫,不過要注意的是,我們需要檢查陣列的排序狀態。