回答編集履歴
2
指摘箇所の誤りを削除、参考URLを記載
    
        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
処理の中で怪しそうな箇所についての記述を追加
    
        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 
     | 
    
         
            +
            合計重量やナップザックの容量が考慮できていないように見受けられます。
         
     |