Leetcode-18-4Sum
題目
Given an array nums of n integers, return an array of all the unique quadruplets [nums[a], nums[b], nums[c], nums[d]] such that:
- 0 <= a, b, c, d < n
- a, b, c, and d are distinct.
- nums[a] + nums[b] + nums[c] + nums[d] == target
You may return the answer in any order.
Example 1
1 | Input: nums = [1,0,-1,0,-2,2], target = 0 |
Example 2
1 | Input: nums = [2,2,2,2,2], target = 8 |
解釋題目
題目會給一個 integer array nums,和一個 integer targets。
在 nums 內,找四個元素: [nums[a], nums[b], nums[c], nums[d]]
,a、b、c、d 不相等,且nums[a] + nums[b] + nums[c] + nums[d] == target
。
這種四元素
可能會有很多個,回傳所有可能,但不要回傳重複的答案。
這題跟 Leetcode-15 很像。
思路
- 先排序 nums,之後做雙指針比較好處理。
- 固定
前兩個元素(i、j)
,再利用雙指針,找到剩下符合題意的元素。(和 3Sum 相同) - 為了避免重複,確認發現了一組解之後,再移動 left 和 right 指針,略過重複項。
程式碼
1 | class Solution { |
Reference
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 記錄程式的地方!
評論