//題目:給乙個陣列,求陣列中兩個數字之和等於給定數字的元素
//解法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...