iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

題目介紹:
給定一個整數陣列 nums,找出所有不重複的三元組 [a, b, c],使得 a + b + c = 0。結果中不能有重複組合。通常先將陣列排序,再用雙指標方法掃描,對每個元素尋找符合條件的兩數組合,以提高效率並避免重複。
解題流程:
先對陣列排序,遍歷每個元素作為基準,使用雙指標在剩餘元素中尋找兩數,使三數和為零,找到後加入結果並跳過重複元素。
程式碼及執行結果截圖:
https://ithelp.ithome.com.tw/upload/images/20250930/201688717nb3bpqpJP.png
https://ithelp.ithome.com.tw/upload/images/20250930/20168871gRngrH7ABk.png
https://ithelp.ithome.com.tw/upload/images/20250930/20168871ijCIP00JTZ.png
學習心得:
這題讓我學到如何用 排序 + 雙指標 技巧高效解決組合問題。原本三重迴圈會導致時間複雜度過高,但透過排序後固定一個元素,再用左右指標尋找剩下兩數,可以大幅降低時間成本。此外,還要注意跳過重複元素,避免結果出現相同的三元組。
延伸邏輯時事面:
1.金融資產組合:分析三種資產總和為零的平衡組合,評估風險與報酬。

2.疫情數據分析:找出確診、康復、死亡數加總達特定條件的組合,用於觀察趨勢或異常。

3.資料科學應用:在大數據中尋找滿足特定條件的多變數組合,協助決策與模式發現。


上一篇
Day17(這週綜合心得)
系列文
從Leetcode到實務的橋樑18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言