※ 引述《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
02/27 13:09, 1F
→
02/27 13:16, , 2F
02/27 13:16, 2F
→
02/27 13:20, , 3F
02/27 13:20, 3F
→
02/27 13:20, , 4F
02/27 13:20, 4F
推
02/27 13:20, , 5F
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
閒聊
6
17
完整討論串 (本文為第 7 之 9 篇):
閒聊
3
4
閒聊
3
12
閒聊
2
7
閒聊
4
90
閒聊
6
17
閒聊
5
15
閒聊
8
26
閒聊
19
83
閒聊
7
47