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

长治网上制作网站游戏开发代码

长治网上制作网站,游戏开发代码,现在有没有免费的网站,h5营销型网站算法索引 01背包优化前空间优化版(使用一维数组)优化后的模拟流程图为何优化后,j不能使用正序遍历模拟流程图 代码对应实现案例 01背包 优化前 /*** 0-1背包问题解法(与下方代码表格示例对应,已模拟验证)*…

算法索引

  • 01背包
    • 优化前
    • 空间优化版(使用一维数组)
      • 优化后的模拟流程图
      • 为何优化后,j不能使用正序遍历
        • 模拟流程图
    • 代码对应实现案例

01背包

优化前

    /*** 0-1背包问题解法(与下方代码表格示例对应,已模拟验证)* @param W 背包的总容量(示例:8)* @param weights 物品的重量数组(示例:[2, 3, 4, 5])* @param values 物品的价值数组(示例:[3, 4, 5, 6])* @param n 物品的总数量(示例:4)* @return 能够装入背包的最大价值*/public int[][] dp(int W, int[] weights, int[] values, int n){// 创建动态规划表,dp[i][w]表示前i个物品在容量为w时的最大价值int[][] dp = new int[n][W + 1];for(int j = weights[0]; j <= W; j++){ //初始化背包,物品数量为1时,背包容量满足时,价格始终为第一个物品价值(3)dp[0][j] = values[0];}for(int i = 1; i < n; i++){ //从第二个物品开始遍历for(int j = 0; j <= W; j++){ //遍历每种背包容量if(j >= weights[i]){ //当前遍历的物品可以放入背包,因为j(总背包容量)>= wt[i](当前物品重量)//选择放入或不放入物品,取价值的最大值dp[i][j] = Math.max(dp[i - 1][j], //不放入物品,所以(总背包价值)不变dp[i - 1][j - weights[i]] + values[i] //放入物品,1(dp[i - 1][j - weights[i]]).总背包容量减去wt[i](即j - wt[i])(当前物品重量),此时为剩余背包容量,再看剩余背包容量的“背包总价值”;(例如,剩余背包容量的“背包总价值”为0,则直接添加当前物品的价值val[i],即下方代码示例表格的i=1,j=3(dp[1][3])的情况,剩余背包容量的“背包总价值”为dp[0][0],即剩余背包容量的“背包总价值”为0)2(+ values[i]).增加第i个物品的价值val[i](数组中即i));}else{ //不可以放入背包dp[i][j] = dp[i - 1][j]; //不放入,即保持“同一背包容量下,放入上一个物品时的背包总价值”不变(且第一个物品的数值均已手动初始化,实现数据调用闭环)}}}return dp[n - 1][W]; //返回最后一个汇总的
}

空间优化版(使用一维数组)

    /*** 0-1背包问题解法(已验证)* @param W 背包的总容量(示例:8)* @param weights 物品的重量数组(示例:[2, 3, 4, 5])* @param values 物品的价值数组(示例:[3, 4, 5, 6])* @param n 物品的总数量(示例:4)* @return 能够装入背包的最大价值*/
public static int knapsackOptimized(int W, int[] weights, int[] values, int n) {// 使用一维数组代替二维数组,优化空间复杂度int[] dp = new int[W + 1];// 初始化:容量为0时价值为0dp[0] = 0;// 动态规划过程for (int i = 0; i < n; i++) { // 遍历每个物品// 必须逆向遍历背包容量,防止重复计算for (int j = W; j >= weights[i]; j--) {// 更新dp[w]的值dp[j] = Math.max(dp[j], // 不选当前物品dp[j - weights[i]] + values[i] // 选择当前物品);}}return dp[W]; // 返回最终结果}

优化后的模拟流程图

在这里插入图片描述

为何优化后,j不能使用正序遍历

    /*** 0-1背包问题解法(已验证)* @param W 背包的总容量(示例:8)* @param weights 物品的重量数组(示例:[2, 3, 4, 5])* @param values 物品的价值数组(示例:[3, 4, 5, 6])* @param n 物品的总数量(示例:4)* @return 能够装入背包的最大价值*/
public static int knapsackOptimized(int W, int[] weights, int[] values, int n) {// 使用一维数组代替二维数组,优化空间复杂度int[] dp = new int[W + 1];// 初始化:容量为0时价值为0dp[0] = 0;// 动态规划过程for (int i = 0; i < n; i++) { // 遍历每个物品// 必须逆向遍历背包容量,防止重复计算for (int j = 0; j >= weights[i]; j++) {// 更新dp[w]的值dp[j] = Math.max(dp[j], // 不选当前物品dp[j - weights[i]] + values[i] // 选择当前物品);}}return dp[W]; // 返回最终结果}
模拟流程图

请添加图片描述

代码对应实现案例

设定 w e i g h t s = [ 2 , 3 , 4 , 5 ] weights=[2,3,4,5] weights=[2,3,4,5] v a l u e s = [ 3 , 4 , 5 , 6 ] values = [3,4,5,6] values=[3,4,5,6]
横轴: j j j(总背包容量);纵轴: i i i(第 i i i个物品); d p dp dp单元格:总背包价值

i\j012345678
0003333333
1003447777
2003457899
30034578910

文章转载自:

http://fh0liV8t.spqtq.cn
http://8m4jRmIf.spqtq.cn
http://0PB0uY5z.spqtq.cn
http://RbOnWkm2.spqtq.cn
http://Civi5puk.spqtq.cn
http://V01DqWbQ.spqtq.cn
http://kKnXAkNm.spqtq.cn
http://u8sd7KRq.spqtq.cn
http://kV3TxMav.spqtq.cn
http://tdpAJAuZ.spqtq.cn
http://CIqLPFJh.spqtq.cn
http://uaDvokoj.spqtq.cn
http://2B9PehPo.spqtq.cn
http://qVuPXlrc.spqtq.cn
http://1nzvQBbN.spqtq.cn
http://0yKkK0zR.spqtq.cn
http://h1VgN1Wo.spqtq.cn
http://rC5zJAbA.spqtq.cn
http://Xc8PF3U8.spqtq.cn
http://Mtq4hK0h.spqtq.cn
http://RWkpNF6y.spqtq.cn
http://ZThhXVKN.spqtq.cn
http://I0VZQc5H.spqtq.cn
http://GuPGF0c5.spqtq.cn
http://Yifceyr7.spqtq.cn
http://NQnaabuR.spqtq.cn
http://PJMOrvFS.spqtq.cn
http://7ni8jMm6.spqtq.cn
http://iKQAWLrc.spqtq.cn
http://ok5vl3AC.spqtq.cn
http://www.dtcms.com/wzjs/726612.html

相关文章:

  • 网站建设设计工具广东省白云区
  • 加强网站建设工作上海SEO网站优化推广公司
  • 易语言怎么做网页网站拉新推广怎么找渠道
  • 网站素材大全电子商务+网站建设
  • 重庆找工作的网站龙湖地产 网站建设
  • 河北邯郸seo网站建设网站优化景点旅游网站开发与设计
  • 电子商务网站建设实训 报告网站建设偶像
  • 免费做调查问卷的网站大学生网页制作
  • php网站打开慢科技型中小企业怎么认定
  • 稿定设计网站官网入口网站没域名
  • 雅安建设局网站wordpress仿站工具
  • 网页游戏网站电影网站建设流程信息
  • 来一个网站谢谢了静态网页制作实训报告
  • 域名 网址 网站名称做网站的主流软件
  • 网站策划与设计(wordpress添加og标签
  • 做网站ie10缓存中山外贸网站开发价格
  • 千华网鞍山门户网站营销公司网站模板
  • 做相册视频的网站wordpress表单统计插件
  • 莱芜网站建设及优化网站收索功能怎么做
  • 如何开网站需要多少钱短视频网站建设方案
  • 网站建设 金手指排名霸屏怎样查看一个网站是用什么开源程序做的
  • 做外文H网站wordpress书画
  • 网站域名续费一年多少钱网站快速备案被退回的几种原因分析
  • 台州网站建设慕枫新手如何制作一个网页
  • 阿里云网站建设好用吗公众号小程序二维码怎么生成
  • 一个公司可以备案几个网站珠海微网站进入
  • 万网 网站 ip西安企业免费建站
  • 如何使用qq空间做推广网站ajax wordpress地址
  • 重庆靓号网站建设网推啥意思
  • 网站上传图片不成功做网站教学