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

2021-06-27 15:36:55 字數 1010 閱讀 7121

找出陣列中的兩個數字,相加等於乙個給定的數字。

(1)遞迴,從第乙個元素和最後乙個元素相加,如果大於sum,則a     b-1,繼續判斷兩個數的和;

如果小於sum,則 a+1   b元素,繼續判斷兩個數的和

#include using namespace std;

void find(int data,int a, int b, int s)

else

cout<<"can not find ";}

void main()

;int length=sizeof(data)/sizeof(int);

find(data,0,length-1,sum);

}

(2)

設定頭尾兩個指標,從第乙個元素和最後乙個元素相加,如果大於sum,則尾指標向前移1個元素,繼續判斷兩個數的和;

如果小於sum,則頭指標向後移1個元素,繼續判斷兩個數的和

#include using namespace std;

void find(int *array, int length, int s)

cout<<"can not find ";

} void main()

; int length=sizeof(data)/sizeof(int);

find(data,length,sum);

}

(3)hash表

#include using namespace std;

void printsum(int a,int n,int total)

; for(int i=0;ib[a[i]]++;

for(int j=0;j}void main()

; int length=sizeof(data)/sizeof(int);

printsum(data,length,sum);

}

《程式設計之美》讀書筆記

程式設計之美 讀書筆記 一 中國象棋將帥問題 程式設計之美 讀書筆記 二 求二進位制數中1的個數 擴充套件問題 程式設計之美 讀書筆記 三 一摞烙餅的排序問題 程式設計之美 讀書筆記 四 買書折扣問題的貪心解法 程式設計之美 讀書筆記 五 飲料 問題 程式設計之美 讀書筆記 六 連連看遊戲設計 程式...

程式設計之美讀書筆記之尋找水王

可以把這個問題轉化為乙個排序和乙個搜尋問題.先把列表轉化為乙個有序列表,然後再遍歷整個列表有序列表.排序演算法不在主題之內,暫時就避而不談.在有序列表尋找出現次數最多的元素這個簡單的演算法跟thunder出的筆試題一模一樣.當時的要求是在乙個有序的字元裡,尋找最多的元素,並統計次數.看看這段簡單的c...

《程式設計之美》讀書筆記集錦

程式設計之美 讀書筆記 一 中國象棋將帥問題 程式設計之美 讀書筆記 二 求二進位制數中1的個數 擴充套件問題 程式設計之美 讀書筆記 三 一摞烙餅的排序問題 程式設計之美 讀書筆記 四 買書折扣問題的貪心解法 程式設計之美 讀書筆記 五 飲料 問題 程式設計之美 讀書筆記 六 連連看遊戲設計 程式...