LeetCode演算法題 四數之和fourSum

2021-09-26 10:36:05 字數 890 閱讀 8037

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

]

思路:和三數之和類似,多一層迴圈,其與細節相同。

class solution 

int flag = 0;

for (int i=0;i0 && nums[i]==nums[i-1])continue;

if (nums[i]+nums[i+1]+nums[i+2]+nums[i+3]>target) break;

if (nums[i]+nums[length-1]+nums[length-2]+nums[length-3]1 萬分重要 否則會過濾掉j的第乙個元素,如果j的第乙個元素與i相等

if (j-i>1 && nums[j]==nums[j-1])continue;

if (nums[i]+nums[j]+nums[j+1]+nums[j+2]>target) break;

if (nums[i]+nums[j]+nums[length-1]+nums[length-2]int l = j+1;

int r = length-1;

while (l}}}

return res;

}}

演算法題 四數之和

題目描述 給定乙個包含 n 個整數的陣列 nums 和乙個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d 使得 a b c d 的值與 target 相等?找出所有滿足條件且不重複的四元組。注意 答案中不可以包含重複的四元組。示例 給定陣列 nums 1,0,1,0,2...

leetcode演算法題 三數之和

排序 雙指標法 先將數列從小到大排序 先選擇乙個數,這一步時間複雜度為o n 在這個數後面的數中用雙指標分別從頭尾遍歷,找到符合條件的數,直到頭尾指標相遇,這一步時間複雜度為o n 迴圈執行第2 3步,總時間複雜度為o n n void twosum vector int nums,int targ...

LeetCode演算法題 兩數之和

記錄在leetcode上的做題記錄。給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。class solution throw newexception 無解...