找出陣列中的兩個數字,相加等於乙個給定的數字。
(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的個數 擴充套件問題 程式設計之美 讀書筆記 三 一摞烙餅的排序問題 程式設計之美 讀書筆記 四 買書折扣問題的貪心解法 程式設計之美 讀書筆記 五 飲料 問題 程式設計之美 讀書筆記 六 連連看遊戲設計 程式...