程式設計之美2 12 快速尋找滿足條件的兩個數

2021-08-02 12:59:23 字數 872 閱讀 5141

//題目:給乙個陣列,求陣列中兩個數字之和等於給定數字的元素

//解法1:窮舉法,計算兩兩元素的和是否滿足要求,時間複雜度o(n^2)

public class main ,12);

} public static void findnum(int input, int target) else

} }

public static void sort(int input, int low, int high)

input[low] = input[high];

while(lowhash = new hashset();

hashsethash1 = new hashset(); //避免重複,3+9 = 12,9+3 = 12

for(int i = 0;i

// 擴充套件題目:給乙個陣列,求其中n個數字和為指定數字的n個元素

// 解法:按照迴圈的方式找前n-2個元素,最後兩個元素用之前的方法找

public class main ,20,4,temp,result);

for(int i = 0;itemp,list> result)

return;

}else if(target > input[low]+input[high])else

}return;

}else{

for(int i = 0;ilist){ //列印列表中元素

for(int i = 0;i> result, listtemp){ //判斷result中是否有與temp一樣的組合出現

for(int i = 0;it = new arraylist();

for(int j = 0;j

程式設計之美讀書筆記2 12 快速尋找滿足條件的兩個數

找出陣列中的兩個數字,相加等於乙個給定的數字。1 遞迴,從第乙個元素和最後乙個元素相加,如果大於sum,則a b 1,繼續判斷兩個數的和 如果小於sum,則 a 1 b元素,繼續判斷兩個數的和 include using namespace std void find int data,int a,...

程式設計之美2 12 快速尋找滿足條件的兩個數

題目 能否快速找出乙個陣列中的兩個數字,讓這兩個數字之和等於乙個給定的值m。解法一 窮舉 o n 2 解法二 先排序,再二分查詢m a i 排序o nlogn 每個數二分查詢o nlgon 總的時間複雜度o nlogn 解法三 hash表,給定乙個數字,根據hash對映查詢另乙個數字是否在陣列中,o...

程式設計之美2 12 快速尋找滿足條件的兩個數

快速尋找滿足條件的兩個數 程式設計之美2.12 include using namespace std 快速排序演算法 void swap int a,int i,int j int partition int a,int low,int high swap a,low,high while low...