java经典递归 背包问题

1.引出

出去旅游,但背包有限,吃的喝的用的都有各自的体积大小,以重量为例,引出问题,该怎样选择装物品能正好装满背包!

2.应用

在一个物品向量中找到一个子集满足条件如下 :

1)所有物品加起来的重量大小,小于等于背包总值

  1. 所以单个物品不大于背包总值,并满足条件1

递归问题.
这个背包可以放入物品的重量为weight,现在n件物品,重量分别为w[0],w[1]…w[n - 1].问题是能否从这n件物品中选择若干件放入此背包中使得放入的重量之和正好等于weight.
试用简单缜密的递归逻辑实现

不说别的直接上代码!

这是一个简单的例子!

Integer[]  weights = {1,5,7,6,7,4};
Integer weight = 18;
void main(){pack(weight,0);
}
boolean pack(int weight,int num){if(weight == 0)return true;if((weight > 0 && num >= (weights.length - 1)) || weight < 0 )return  false;if(pack(weight - weights[num],num + 1)){System.out.println("num: "+ (num +1 ) +" weight: " + weights[num]);return true;}if(pack(weight,num+1))return true;elsereturn false;}

java经典递归 背包问题相关推荐

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

    下面的内容段是关于Java通过递归解决0-1背包问题的内容. public class Knapsack { public static void main(final String... args) ...

  2. 减治法在生成子集问题中的应用(JAVA)--递归、二进制反射格雷码

    减治法在生成组合对象问题中的应用 生成子集问题:经典的背包问题就是求解一个最优子集的问题,这里我们来讨论一个更简单的问题.对于任意一个集合来说,它都存在2^n个子集(一个集合所有的子集集合称为幂集). ...

  3. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  4. java经典50题_JAVA经典算法50题(3)【面试+工作】

    原标题:JAVA经典算法50题(3)[面试+工作] JAVA经典算法50题(3)[面试+工作] [程序21] 题目:求1+2!+3!+...+20!的和. 1.程序分析:此程序只是把累加变成了累乘. ...

  5. java面试题_阿里大厂流出的数百道 Java 经典面试题

    BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...

  6. JAVA经典算法大全

    JAVA经典算法大全 from http://java-mans.iteye.com/blog/16457031.河内之塔 2.Algorithm Gossip: 费式数列. 3.巴斯卡三角形 4.A ...

  7. Java经典算法四十例编程详解+程序实例

    JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...

  8. JAVA经典算法40题

    JAVA经典算法40题 [程序1]  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析 ...

  9. Java经典问题算法大全 Java小程序

    <Java经典算法>-百度文库 (制作:19511953) 1Java经典问题算法大全 /*[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三 个 ...

最新文章

  1. 敏捷结果30天之第四天:放弃一些事情
  2. CoinU基本概念分享(什么是去中心化钱包、助记词丢失怎么办等)
  3. 转向语句 goto语句
  4. Angular component的一个例子
  5. Building a Space Station--POJ 2031
  6. 解释为脑瘫的那张图_Python GIL全局解释器锁详解(深度剖析)
  7. 二:Java+SpringBoot框架使用(返回cookies信息的get接口开发)
  8. win10计算器rsh_Win10计算器在哪里?
  9. Delphi LiveBinds组件
  10. ajax 返回数组某个属性值,jQuery Ajax向某个页面传值并取得返回的数组
  11. Coreseek安装测试配置指南(转)
  12. Rigify:关于Rigify生成最终绑定时失败的原因及解决办法
  13. 云服务器怎么设置成代理服务器?
  14. 专升本——主从复合句
  15. NodeJs 的fs模块
  16. 吃烧烤之命令模式学习笔记[C++版] 1
  17. 解决页面下载文件,资源不存在页面出现空白的问题。
  18. Linux系统下如何创建任意大小的测试文件
  19. 【收藏向】电路(下) 思维导图 3小时不挂科(邱关源教材)
  20. 逃离迷宫 ( BFS /DFS)

热门文章

  1. 张良、萧何与韩信:汉初三杰悲情录[转]
  2. win7通过win10的ISO镜像免费升级正版win10(组图)
  3. 监控、无人机摄像头RTSP协议对接腾讯云直播
  4. java在控制台用星号打印出圆形
  5. 电脑计算机word2007的介绍,word2007电脑版
  6. word导出html乱码怎么办,Word文档文件变成乱码如何完全修复?-修复百科
  7. 抽奖动画 - lao虎机抽奖,手把手教你做一个抽奖机软件
  8. Citavi——令人激动的文献管理工具
  9. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者
  10. APT组织最喜欢的工具 Cobalt Strike (CS) 实战