teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

指摘箇所の誤りを削除、参考URLを記載

2018/07/05 10:22

投稿

shiron46
shiron46

スコア111

answer CHANGED
@@ -24,6 +24,6 @@
24
24
  return dp[0][0];
25
25
  }
26
26
  ```
27
-
27
+  
28
- - **ナップザックの残容量**
28
+ ### 参考URL
29
- 合計重量やナップザックの容量が考慮できていないように見受けられます。
29
+ [pieceofnostalgy.blogspot.com/2013/12/01.html](http://pieceofnostalgy.blogspot.com/2013/12/01.html)

1

処理の中で怪しそうな箇所についての記述を追加

2018/07/05 10:22

投稿

shiron46
shiron46

スコア111

answer CHANGED
@@ -8,4 +8,22 @@
8
8
  // (中略)
9
9
  System.out.println(dp[0] + "番目の組み合わせが最適解");
10
10
  ```
11
- dpは2次元配列ですが、1次元分しかインデックスを指定していないためです。
11
+ dpは2次元配列ですが、1次元分しかインデックスを指定していないためです。
12
+
13
+ ---
14
+ 以下は見直し方が良さそうな箇所です。
15
+ - **dpメソッド内のループ条件**
16
+ 特に下記のコードは問題があります。
17
+ -- ループに入ると無条件でreturnしてしまいます。
18
+  -- 配列dp の2次元目は大きさW(15)ですが、N(20)までループさせようとしています。
19
+
20
+ ```Java
21
+ for(int j=0;j<N;j++) {
22
+ bootlearn[j]=dp[i][j];
23
+ System.out.println();
24
+ return dp[0][0];
25
+ }
26
+ ```
27
+
28
+ - **ナップザックの残容量**
29
+ 合計重量やナップザックの容量が考慮できていないように見受けられます。