java经典递归 背包问题
java经典递归 背包问题
1.引出
出去旅游,但背包有限,吃的喝的用的都有各自的体积大小,以重量为例,引出问题,该怎样选择装物品能正好装满背包!
2.应用
在一个物品向量中找到一个子集满足条件如下 :
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经典递归 背包问题相关推荐
- Java通过递归解决0-1背包问题的代码
下面的内容段是关于Java通过递归解决0-1背包问题的内容. public class Knapsack { public static void main(final String... args) ...
- 减治法在生成子集问题中的应用(JAVA)--递归、二进制反射格雷码
减治法在生成组合对象问题中的应用 生成子集问题:经典的背包问题就是求解一个最优子集的问题,这里我们来讨论一个更简单的问题.对于任意一个集合来说,它都存在2^n个子集(一个集合所有的子集集合称为幂集). ...
- JAVA经典算法50题(转)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1] 题目:古典问题:有一对兔子, ...
- java经典50题_JAVA经典算法50题(3)【面试+工作】
原标题:JAVA经典算法50题(3)[面试+工作] JAVA经典算法50题(3)[面试+工作] [程序21] 题目:求1+2!+3!+...+20!的和. 1.程序分析:此程序只是把累加变成了累乘. ...
- java面试题_阿里大厂流出的数百道 Java 经典面试题
BAT 常问的 Java基础39道常见面试题 1.八种基本数据类型的大小,以及他们的封装类 2.引用数据类型 3.Switch能否用string做参数 4.equals与==的区别 5.自动装箱,常量 ...
- JAVA经典算法大全
JAVA经典算法大全 from http://java-mans.iteye.com/blog/16457031.河内之塔 2.Algorithm Gossip: 费式数列. 3.巴斯卡三角形 4.A ...
- Java经典算法四十例编程详解+程序实例
JAVA经典算法40例 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...
- JAVA经典算法40题
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析 ...
- Java经典问题算法大全 Java小程序
<Java经典算法>-百度文库 (制作:19511953) 1Java经典问题算法大全 /*[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三 个 ...
最新文章
- 敏捷结果30天之第四天:放弃一些事情
- CoinU基本概念分享(什么是去中心化钱包、助记词丢失怎么办等)
- 转向语句 goto语句
- Angular component的一个例子
- Building a Space Station--POJ 2031
- 解释为脑瘫的那张图_Python GIL全局解释器锁详解(深度剖析)
- 二:Java+SpringBoot框架使用(返回cookies信息的get接口开发)
- win10计算器rsh_Win10计算器在哪里?
- Delphi LiveBinds组件
- ajax 返回数组某个属性值,jQuery Ajax向某个页面传值并取得返回的数组
- Coreseek安装测试配置指南(转)
- Rigify:关于Rigify生成最终绑定时失败的原因及解决办法
- 云服务器怎么设置成代理服务器?
- 专升本——主从复合句
- NodeJs 的fs模块
- 吃烧烤之命令模式学习笔记[C++版] 1
- 解决页面下载文件,资源不存在页面出现空白的问题。
- Linux系统下如何创建任意大小的测试文件
- 【收藏向】电路(下) 思维导图 3小时不挂科(邱关源教材)
- 逃离迷宫 ( BFS /DFS)
热门文章
- 张良、萧何与韩信:汉初三杰悲情录[转]
- win7通过win10的ISO镜像免费升级正版win10(组图)
- 监控、无人机摄像头RTSP协议对接腾讯云直播
- java在控制台用星号打印出圆形
- 电脑计算机word2007的介绍,word2007电脑版
- word导出html乱码怎么办,Word文档文件变成乱码如何完全修复?-修复百科
- 抽奖动画 - lao虎机抽奖,手把手教你做一个抽奖机软件
- Citavi——令人激动的文献管理工具
- 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者
- APT组织最喜欢的工具 Cobalt Strike (CS) 实战