1 昨天參加一公司筆試,給幾道演算法題整懵了,其實也不難,但好久沒有碰演算法,只是有思路,要讓我在這麼短的時間內寫出程式來還是不行。
2 這裡將其中一道稍微複雜一點的演算法題寫下來,以此小結。
3 4 題目描述:
5 將n個雞蛋放入到m個籃子中去(n>m),保證每個籃子中至少乙個雞蛋,然後指定乙個數x, 要求從籃子中找出任意個籃子,這些籃子中雞蛋的總和加起來要等於x。請找出所有這樣的情況。
6 7 思路:
8 由於n個雞蛋放入m個籃子中有很多種放法,所以這裡存在多種組合的情況。解決這個是第一步。
9 對於已經放好的籃子,又有很多種情況可以等於x。這是第二步。
10 11 第一步:
12 #define m
5//basket number
13 #define n
20//eggs number
14 #define x
8//number to be specified
15integgs[m]; //egg baskets
16 17
//check whether this satisfies the condition
18intcheck()
19 28
if(n == sum)
29
32return0;
33 }
34 35
intput_egg(intremain_eggs,intindex)
36 44 cout << endl;
45 }
46if(remain_eggs <=0 || index >= m)
47
50 51
for(i = n; i >=1; i--)
52
60 }
61return0;
62 }
63 64
intmy_put_egg()
65 72 put_egg(remain, 0); //put the remain eggs into baskets.
73return0;
74 }
75 76 第二部分:
77 找出和等於x的組合:
78integg_stack[1024];
79intbasket_stack[1024];
80inttop =0;
81intsolve_sum(intarray,intsum,intbasket_num)
82 97
elseif(sum < tmp)
98
101
else
102
109 cout << endl;
110 }
111 }
112
113
intmain()
114
118
119
面試題 筆試
題1 有如下資料庫表tab 請用乙個 delete 語句,刪除 value 重複的行,每個 value 只保留 id 最小的一行。delete from tab where id notin select from select min id from tab groupby value a 好像有...
筆試面試題
1.書架上有編號為1 19的19本書,從中拿5本,問5本編號都不相鄰的拿法有多少種?使用隔板法,拿掉5本後剩下14塊板,即有15個空,使用組合15份插5份 c15 5 3003 2.1億個資料取前1萬大的整數 演算法思路 a.把1億個資料分成10000個陣列,b.求出10000個陣列的最大值,儲存到...
筆試面試題二
1 c字串是以 0 字元作為結束標誌的 char p abcde 0fghjik 0 printf d n strlen p 5 a b c d e char acnew 20 0 0 printf d n strlen acnew 2 和0 2 建構函式和虛析構函式 include stdafx....