給乙個包含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 對所有的數進行排序,然後從排序好的數裡面就可以找到最值。當然排序的方法有...