LintCode 58 四個數之和

2021-07-31 09:06:33 字數 571 閱讀 1396

給乙個包含n個數的整數陣列s,在s中找到所有使得和為給定整數target的四元組(a, b, c, d)。

注意事項

四元組(a, b, c, d)中,需要滿足a <= b <= c <= d

答案中不可以包含重複的四元組。

例如,對於給定的整數陣列s=[1, 0, -1, 0, -2, 2] 和 target=0. 滿足要求的四元組集合為:

(-1, 0, 0, 1)

(-2, -1, 1, 2)

(-2, 0, 0, 2)

無跟上一題一樣,直接暴力求解,但是四重迴圈後超時,所以改良一下,用前後查詢法找最後二個數。

vector

> foursum(vector

nums, int target) else

if (sum < target) else }}

}set

>::iterator it;

for (it = s.begin(); it != s.end(); it++)

return vec;

}

領扣LintCode問題答案 58 四數之和

領扣lintcode問題答案 58.四數之和 給乙個包含n個數的整數陣列s,在s中找到所有使得和為給定整數target的四元組 a,b,c,d 四元組 a,b,c,d 中,需要滿足a b c d 答案中不可以包含重複的四元組。樣例 1 輸入 2,7,11,15 3 輸出 樣例 2 輸入 1,0,1,...

58 四數之和

原題 四元組 a,b,c,d 中,需要滿足a b c d 答案中不可以包含重複的四元組。您在真實的面試中是否遇到過這個題?是 和 target 0.滿足要求的四元組集合為 1,0,0,1 2,1,1,2 2,0,0,2 標籤排序 雜湊表兩根指標 陣列思路 沿用三數之和的方法,對陣列排序,然後固定兩個...

四個數比較大小 遞迴解法

今天在群裡水的時候,看到有的同學提到這個問題,然後我就在電腦上自己敲了一遍。下面說一下我的解題思路 首先這個題目就是簡單的最值問題。這個問題一般的話有兩個思路 1 定義乙個數為最值,然後與其餘的數進行比較然後比較,找出最值。2 對所有的數進行排序,然後從排序好的數裡面就可以找到最值。當然排序的方法有...