Java递归版01背包

Posted z2529827226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java递归版01背包相关的知识,希望对你有一定的参考价值。

class Solutionx
    private int memo[][];
    private int w[];
    private int v[];
    
    public int bestValue(int Index,int c)
         if(Index < 0||c < 0)
            return 0;
                
         if(memo[Index][c]!=-1)
         return memo[Index][c];
         
         int res=bestValue(Index-1,c);
         if(c>=w[Index])
          res=Math.max(res, bestValue(Index-1,c-w[Index])+v[Index]);
         
         memo[Index][c]=res;
         return res;
    
    public int kcap()
    
       w=new int[]0,4,2,3,5;
       v=new int[]0,2,5,1,4;
       memo=new int[8][8];
       for(int i=0;i<8;++i)
         for(int j=0;j<8;++j)
         memo[i][j]=-1;
         
       
       return bestValue(4,7); 
   
 
 
 
 
 
 public class Mainx 
    public static void main(String[] args) 
        Solutionx space=new Solutionx();
        System.out.println(space.kcap());
    
 
 

 

以上是关于Java递归版01背包的主要内容,如果未能解决你的问题,请参考以下文章

Java中背包的递归解决方案

动态规划-01背包问题

背包之01背包完全背包多重背包详解

Java入门算法(动态规划篇2:01背包精讲)

Java入门算法(动态规划篇2:01背包精讲)

01背包问题的多种解法