首页 > 编程语言 > 详细

Java通过递归解决0-1背包问题的代码

时间:2020-06-08 16:16:33      阅读:26      评论:0      收藏:0      [点我收藏+]

下面的内容段是关于Java通过递归解决0-1背包问题的内容。


public class Knapsack {
public static void main(final String... args) {
int[] arr = new int[5];
arr[0] = 11;
arr[1] = 8;
arr[2] = 7;
arr[3] = 5;
arr[4] = 3;
Knapsack k = new Knapsack();
System.out.println(k.knapsack(arr, 0, 20, 20));
}

public boolean knapsack(int[] arr, int start, int left, int sum) {

if (arr.length == 0) {
return false;
}

if (start == arr.length) {
int[] tempArr = new int[arr.length - 1];
for (int i = 0; i < tempArr.length; i++) {
tempArr[i] = arr[i + 1];
}
return knapsack(tempArr, 0, sum, sum);
} else if (arr[start] > left) {
return knapsack(arr, start + 1, left, sum);
} else if (arr[start] == left) {
for (int i = 0; i < start + 1; i++) {
System.out.print(arr[i] + "t");
}
System.out.println();
return true;
} else {
return knapsack(arr, start + 1, left - arr[start], sum);
}
}
}




 

Java通过递归解决0-1背包问题的代码

原文:https://www.cnblogs.com/tozgb/p/13065954.html

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