Re: [閒聊] 臉書在找人

看板Soft_Job作者 (喲)時間14年前 (2012/02/27 13:06), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串7/9 (看更多)
※ 引述《Baudelaire (起坐不能平。)》之銘言: : 推 danielguo:話說 Amazon AWS 在招不少人, 有興趣的可以上網站看 02/26 15:58 : AWS很操,沒有決心不要亂丟,半夜三點會被pager叫起來尿尿的...。 : 不過如果有興趣到Amazon的話,可以私底下丟resume給我。 : --- : 另外這題應該是很基本的題目, : 想丟履歷的試看看能不能儘快寫出來。 : 我的答案是這個, : 如果不要sequeuce,要combination的話, : 可以把result改成counter。 : static void sumupArray(int [] array, int num, String result) : { : if (num == 0) : { : System.out.println(result); : return; : } : if (num < 0) : { : return; : } : for (int i : array) : { : sumupArray(array, num-i, result+ " " + i); : } : return; : } 你這作法框架完整,不過遞迴與for迴圈混雜造成一些誤導,其實只一味 把遇到的數字扣掉而已. 如果改成下列這樣,就是很好的backtracking: static void sumupArray(Set1 scores, int num, String result) { if (num == 0 || scores.isEmpty()) { System.out.println(result); return; } if (num < 0) return; //for (int i : array) { Set1 scores1 = scores.removeFirst(); //sumupArray(scores1, num-i, result+ " " + i); sumupArray(scores1, num - scores.first() , result+ " " + scores.first()); sumupArray(scores1, num, result); //} } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.65.204 ※ 編輯: yauhh 來自: 61.231.65.204 (02/27 13:15)

02/27 13:09, , 1F
這一樣有 1+2 2+1 的問題
02/27 13:09, 1F

02/27 13:16, , 2F
1+2 2+1問題?
02/27 13:16, 2F

02/27 13:20, , 3F
哦,我了解了,可是如果本來的分數就有 1,2,2,1 這樣重複定義,
02/27 13:20, 3F

02/27 13:20, , 4F
你不可以把兩個1當作同一個.
02/27 13:20, 4F

02/27 13:20, , 5F
我看到 for 迴圈砍掉前的版本... XD
02/27 13:20, 5F

02/27 13:24, , 6F
沒辦法,寫完還想到加了那個迴圈本來就怪怪的
02/27 13:24, 6F

02/27 18:36, , 7F
這幾篇長知識
02/27 18:36, 7F
文章代碼(AID): #1FImyzGw (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1FImyzGw (Soft_Job)