当前位置: 首页 > wzjs >正文

百度网站官网入口19

百度网站官网入口,19,网站设计原型工具,ssc网站建设担保交易文章目录前言一、完全背包问题之组合问题---先物体再背包容量(背包)1.代码2.输出结果如下:3.现在我们来分析一下这个输出结果:二、完全背包问题之排列问题---先背包再物体1.代码2.输出结果如下:3.分析输出结果三、对比…

文章目录

  • 前言
  • 一、完全背包问题之组合问题---先物体再背包容量(背包)
    • 1.代码
    • 2.输出结果如下:
    • 3.现在我们来分析一下这个输出结果:
  • 二、完全背包问题之排列问题---先背包再物体
    • 1.代码
    • 2.输出结果如下:
    • 3.分析输出结果
  • 三、对比输出结果
  • 总结


前言

这段时间在学习代码随想录的动态规划篇,学到完全背包的时候理解不了为什么改变遍历顺序就可以改变成排列和组合问题,于是我自己动手遍历了一下,做一个记录。


一、完全背包问题之组合问题—先物体再背包容量(背包)

因为一维和二维思路都是差不多的,为了和下面的排列问题一一对应,这块就直接用一维的进行演示,代码如下:

1.代码

int combinationSum4(vector<int>& nums, int target) {int n = nums.size();vector<int> dp(target + 1, 0);dp[0] = 1;for (int i = 0; i < n; i++){for (int j = 0; j <= target; j++){if (j >= nums[i]) dp[j] += dp[j - nums[i]];cout << dp[j] << " ";}cout << endl;}return dp[target];}

2.输出结果如下:

组合问题输出结果

3.现在我们来分析一下这个输出结果:

输出结果分析
我们这里默认将新的元素加在集合的最后面,在排列方法中也是这样。

二、完全背包问题之排列问题—先背包再物体

1.代码

int arrangeSum4(vector<int>& nums, int target) {int n = nums.size();//dp[i]:容量为i的背包可以装下的组成i的排列数为dp[i];vector<int> dp(target + 1, 0);dp[0] = 1;for (int i = 0; i <= target; i++){for (int j = 0; j < n; j++){if (i >= nums[j]) dp[i] += dp[i - nums[j]];cout << dp[i] << " ";}cout << endl;}return dp[target];}

2.输出结果如下:

排列问题输出结果

3.分析输出结果

输出结果分析
上面我们也说了,每次添加的时候会将新加入的元素放在最后面(同意放在最前面也是可以的哈)。

三、对比输出结果

本来我思路是比较乱的,但是当把这两张图画完之后,可以看出来:
对于组合问题,先遍历物体,再遍历背包容量,最后的结果数组的顺序就会按照我们的nums数组的顺序进行排列,在我们的这个例子中,也就是所有的结果数组都是按照从小到大排的,严格按照1, 2, 3的顺序。
但是对于排序问题,先遍历背包容量,再遍历物体,最后的结果就会出现并非按照数组顺序的排列情况,也就是所谓的排列问题,因为遍历相同的背包容量时,我们都会把每一个元素再重新遍历一遍。


总结

这篇博客是为了记录我在学习动态规划部分想不通的问题,也就是所谓的组合与排列问题,通过画图的方式我最终得到了结论,于是把这个结论记录下来。


文章转载自:

http://3UR9klr8.nhgkm.cn
http://7XSweOPH.nhgkm.cn
http://whAHH4aD.nhgkm.cn
http://n20LldRp.nhgkm.cn
http://bbn72jkC.nhgkm.cn
http://BOn9PowS.nhgkm.cn
http://tCGK08pD.nhgkm.cn
http://oCmjxFqw.nhgkm.cn
http://Bz5MlUYD.nhgkm.cn
http://6oSlJo7n.nhgkm.cn
http://ZCVDqMwU.nhgkm.cn
http://4Bk1VwBW.nhgkm.cn
http://CEBYFX8t.nhgkm.cn
http://7SkQhpSn.nhgkm.cn
http://yiLTN7Ih.nhgkm.cn
http://CtTfSe4W.nhgkm.cn
http://bOwFh53A.nhgkm.cn
http://QCVnKAbT.nhgkm.cn
http://em5kpmkG.nhgkm.cn
http://jzzKPtMa.nhgkm.cn
http://swMD9O2n.nhgkm.cn
http://HsPtMKLu.nhgkm.cn
http://1LgdBn0V.nhgkm.cn
http://Z9loys6h.nhgkm.cn
http://fBAeqiZd.nhgkm.cn
http://uOxMPE7I.nhgkm.cn
http://uJe5UQ20.nhgkm.cn
http://ojuL2PTb.nhgkm.cn
http://9fPSq2te.nhgkm.cn
http://3d4ZltYe.nhgkm.cn
http://www.dtcms.com/wzjs/636006.html

相关文章:

  • 如何选择企业网站建设重庆荣昌网站建设报价
  • 网络设计网站用什么来网站开发好
  • 旅游网站建设规划济南做seo外包
  • 移动端网站怎么做的网站换域名影响
  • 蛋糕教做网站wordpress 插件放在那
  • 昆明网站建设推荐瑞安外贸网站建设
  • 网站改版开发公司怎么做网站教程 用的工具
  • 东莞高端商城网站制作珠海商城网站制作
  • 网站开发交接热狗seo优化外包
  • 建设信用交通网站 省网站的建设服务平台
  • 可以做免费推广的网站吗创新驱动发展战略纲要
  • 专业建站提供商高薪聘请网站开发工程师
  • 有网站源码怎么做网站电子商务网站建设 教学大纲
  • 做网站那几步建设网站的价值
  • 做网站要多少像素微博图片怎么做外链到网站
  • 网站引流推广怎么做动态链接做网站外链图
  • 做网站 视频wordpress移动自媒体
  • 自适应网站有哪些做网站需要哪些知识
  • 网站估价空调网站模板
  • 成都市网站建设哪家好怎么做网址导航网站
  • 网站开发难吗wordpress no7
  • 网页游戏网站那个好网站开发需要什么技能
  • 下载用的网站怎么做网站备案免费吗
  • 网站开发工作好吗大屏网站模板
  • 天猫旗舰店网站建设案例有什么软件可以做网站
  • 自己做网站到哪里去接广告wordpress收录差劲啊
  • 电子商务网站的设计工具北京互联网建站网站
  • 郑州网站建设君捷如果一个网站的域名是
  • 什么是响应网站设计什么网站可以在家做美工兼职
  • 网站运营 流程网站外接