首页 > 编程语言 > 详细

背包问题递归java

时间:2015-02-14 22:26:23      阅读:282      评论:0      收藏:0      [点我收藏+]
 1 public boolean PackageProblem(int[] arr,int start,int left,int target)
 2     {
 3         if(arr.length==0) 
 4         {
 5             System.out.println("no Answer");
 6             return false;
 7         }
 8         if(start==arr.length)
 9         {
10             int[] tempArr=new int[arr.length-1];
11             System.arraycopy(arr, 1, tempArr, 0, arr.length-1);15             return PackageProblem(tempArr, 0, target, target);
16         }
17         else if(arr[start]>left)
18         {
19             return PackageProblem(arr, start+1, left, target);
20         }
21         else if(arr[start]==left)
22         {
23             System.out.println("yes has answer");
24             return true;
25         }
26         else{
27             return PackageProblem(arr, start+1, left-arr[start], target);
28         }
29         
30     }

 

int[] arr={11,10,8,7,5,3};
int target=21;

但是这个数组要是从大到小排好的?

int[] arr={11,8,7,5,3,10};就不行

背包问题递归java

原文:http://www.cnblogs.com/sweetculiji/p/4292194.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!