iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0
自我挑戰組

leetcode系列 第 15

leetcode 15. 3Sum

  • 分享至 

  • xImage
  •  

題目:
Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0.

Notice that the solution set must not contain duplicate triplets.

給定一個整數數組 nums,傳回所有[nums[i], nums[j], nums[k]]滿足i != j、i != k、 和j != k、 和 的三元組nums[i] + nums[j] + nums[k] == 0。

請注意,解決方案集不能包含重複的三元組。https://ithelp.ithome.com.tw/upload/images/20250929/20169340eWtdmAdlvB.png
解題思路

排序 (Sorting)

先對陣列排序,這樣方便去重、也方便用雙指針。

固定一個數 + 雙指針

外層迴圈:固定一個數 nums[i]。

內層:用雙指針 left = i+1, right = n-1,找是否存在 nums[left] + nums[right] = -nums[i]。

去重 (Deduplication)

外層:如果 nums[i] == nums[i-1],就跳過,避免重複答案。

內層:移動 left、right 時,也要跳過相同的數字。

時間複雜度

O(n²),比暴力 O(n³) 快很多。


上一篇
leetcode 14. Longest Common Prefix
下一篇
leetcode 16. 3Sum Closest
系列文
leetcode16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言