相加為定值和的元組

2021-07-14 00:02:41 字數 611 閱讀 3242

描述:給定乙個無序陣列,判斷能否在陣列中找到兩個數使得和為給定值,返回所有這樣的元組。

輸入:array={-1,0,1,2,-1,4},sum=1。

輸出:(0,1),(--1,2)。

思路一:暴力法,做兩次迴圈,依次查詢符合條件的二元組。時間複雜度為平方級,空間複雜度為1。

#includeclass solution

else

}return res;

}};

擴充套件:若是要尋找符合和為定值的三元組該如何設計?

思路一:暴力法,時間複雜度為立方級,**省略。

思路二:先排序,然後做左右夾逼,注意跳過重複的數字,時間複雜度為平方級,空間複雜度為1。

#includeclass solution

else

{vectortmp;

tmp.push_back(a[i]);

tmp.push_back(a[j]);

tmp.push_back(a[k]);

res.push_back(tmp);

j++;

k--;

while(a[j]==a[j-1]&&a[k]==a[k+1]&&j

演算法 和為定值

輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。咱們試著一步一步解決這個問題 注意闡述中數列有序無序的區別...

相加和最大值

time limit 1000ms memory limit 65536kb submit statistic problem description 輸入三個整數a,b,c。並進行兩兩相加,最後比較相加和的最大值。input 輸入資料報含三個整數,用空格分開。output 輸出兩兩相加後的最大值。...

尋找和為定值的數

尋找和為定值的兩個數 include using namespace std include 排序夾逼 時間複雜度為o nlogn n o nlogn 空間複雜度 o 1 void twosum int a,unsigned int length,int sum else void funtest ...