LeetCode 18 四數之和

2021-10-03 03:55:46 字數 1026 閱讀 2783

給定乙個包含 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...