描述:給定乙個無序陣列,判斷能否在陣列中找到兩個數使得和為給定值,返回所有這樣的元組。
輸入: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 ...