公告歡迎來到 Larry's notes,近期會持續整理網站。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
LeetCode - 15 解題紀錄
題目說明
給一個陣列,求此陣列中所有三個元素值相加為 0 的組合。
解題思路
為了增加效率,先對陣列進行排序,接著遍歷陣列,先選定一個最左邊的數字,接著往右找是否存在相加為此數的相反數的組合,若存在代表找到一組,接著檢查 l 的右邊及 r 的左邊的數是否相同,避免找到重複的組合。同時再過程中若是 nums[i] > 0 就可以不用再找了,因為我們是選定最左邊的數,且我們的陣列是排序過的,所以右邊不可能會有相加為此數的相反數的組合,同時要避免重複運算,所以若 nums[i] == nums[i - 1] 則直接 continue。
參考解法
1 | // fast IO |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論