給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。
注意:答案中不可以包含重複的四元組。
示例:給定陣列 nums =[1, 0, -1, 0, -2, 2]
和 target = 0。
滿足要求的四元組集合為:
[[-
1,0,
0,1]
,[-2
,-1,
1,2]
,[-2
,0,0
,2]]
這題就是【leetcode:15 三數之和】的變形
注意:窮舉第乙個數和【三數之和】中是一樣的,去重條件:當前數和它前乙個數不等,表示不會重複選取同樣的數字
對於k
數之和,我們都可以用複雜度 o(nk-2) 窮舉k-2
個數,最後用 o(n) 複雜度(雙指標)完成兩數之和,總體複雜度為o(nk-1)
class
solution
if(sum>target)
if(sum==target));
}// 第三,第四個數去重
while
(l+1
size()
&& nums[l]
==nums[l+1]
) l++
;while(0
<=r-
1&& nums[r]
==nums[r-1]
) r--
; l++
; r--;}
}}return ans;}}
;
LeetCode 18 四數之和
給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 ...
LeetCode 18 四數之和
給定乙個包含 n 個整數的陣列nums和乙個目標值target,判斷nums中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與target相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2,2 和 target ...
leetcode18 四數之和
def foursum nums,target numlen,res,d len nums set if numlen 4 return nums.sort 二層迴圈遍歷任意兩個元素對和存放到字典d裡並把序號存起來 for p in range numlen for q in range p 1,n...