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

校园论坛网站建设论文seo如何提高网站排名

校园论坛网站建设论文,seo如何提高网站排名,网站推广的好处,找人做网站 多少钱所用代码 java 完全背包 01背包物品只能使用一次 – 倒序遍历 for(i 0; i < weight.length; i){ 物品for (j bagWeight; j > weight[i]; j--){ 背包dp[j] max(dp[j], dp[j-weight[i]] value[i])} }完全背包物品可以使用无限次 – 正序遍历 for(i 0; i < weigh…

所用代码 java

完全背包

01背包物品只能使用一次 – 倒序遍历

for(i = 0; i < weight.length; i++){ 物品for (j = bagWeight; j >= weight[i]; j--){ 背包dp[j] = max(dp[j], dp[j-weight[i]] + value[i])}
}

完全背包物品可以使用无限次 – 正序遍历

for(i = 0; i < weight.length; i++){ 物品for (j = weight[i]; j <= bagWeight; j++){ 背包dp[j] = max(dp[j], dp[j-weight[i]] + value[i])}
}

完全背包for循环中可以颠倒,先遍历谁都可以

零钱兑换 II LeetCode 518

题目链接:零钱兑换 II LeetCode 518 - 中等

思路

  • dp[j]:装满背包j的情况有dp[j]种

  • 递推公式:dp[j] += dp[j-coins[i]]

  • 初始化:dp[0] = 1 如果等于0,后面累加就会一直是0, 空集也是一种方法

    • dp[1] += dp[0],1要从0得到结果然后继续累加
  • 遍历方向:coins[i] <= j <= amount

  • 打印dp

class Solution {public int change(int amount, int[] coins) {int[] dp = new int[amount + 1];dp[0] = 1;for (int i = 0; i < coins.length; i++) { // 物品for (int j = coins[i]; j <= amount; j++){ // 背包dp[j] += dp[j-coins[i]];
//                System.out.print("\tdp[j] = " + dp[j]);}
//            System.out.println();}return dp[amount];}
}

总结

先遍历物品,后遍历背包,保证了物品是从1、2、3开始的,不会有重复,也就是说这是一个组合数

若先遍历背包,再遍历物品,每次物品都是从1开始,就会有重复数,如1,2 2,1 但是这可以代表排列数

组合总和 Ⅳ leetCode 377

题目链接:组合总和 Ⅳ leetCode 377 - 中等

思路

  • dp[j] :和为j的情况有dp[j]种
  • 递推:dp[j] += dp[j-nums[i]]
  • 初始化:dp[0] = 1
  • 遍历顺序:先背包,后物品
class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target + 1];dp[0] = 1;for (int j = 0; j <= target; j++) { // 背包for (int i = 0; i < nums.length; i++) { // 物品if (j >= nums[i]) dp[j] += dp[j-nums[i]];System.out.print("\tdp[j] = " +dp[j]);}System.out.println();}return dp[target];}
}

总结

背包为0可以装下物品 1 2 3 这其实是一个悖论,也可以认为是背包为0的可以装下无限大的东西。但是我认为把这个看成一个初始化无意义的值就行了,以防止出现后序累加的值一直为0。

dp数组的打印值

        dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 2   dp[j] = 2dp[j] = 2   dp[j] = 3   dp[j] = 4dp[j] = 4   dp[j] = 6   dp[j] = 7

若是觉得这值确实没必要,我们其实可以从j=1开始遍历,所打印的值就有助于对于dp数组的理解。

        dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 2   dp[j] = 2dp[j] = 2   dp[j] = 3   dp[j] = 4dp[j] = 4   dp[j] = 6   dp[j] = 7

所以,通过这两个题,我们可以明白:

  • 先遍历物品,再遍历背包:组合问题 - 无重复
  • 先遍历背包,再遍历物品:排列数 - 有重复(可排序)
http://www.fp688.cn/news/164268.html

相关文章:

  • 手机网站建设设计服务青岛网站seo公司
  • 做网站时点击显示百度广告收费标准
  • 达内培训 web网站开发推广app下载
  • 文本怎样做阅读链接网站有哪些网站可以免费发布广告
  • 怎么做b2b网站2020 惠州seo服务
  • 备案增加网站大数据营销 全网推广
  • 做动态网站该看的书seo优化外包顾问
  • 电脑版传奇网站安卓优化大师最新版下载
  • 南皮县网站建设知乎推广优化
  • 安徽党组织标准化建设网站北京网站优化服务
  • 南通水情最新信息seo搜索优化是什么意思
  • 电商网站开发参考文献企业网站seo诊断报告
  • 贵州交通建设集团有限公司网站指数函数图像
  • 苏州做外贸网站今日国内重大新闻事件
  • 苏州市著名网站制作关键词百度指数查询
  • 广州开发区交通投资集团有限公司江西短视频seo搜索报价
  • 北京网站制作飞沐国内新闻今日头条
  • 免费申请com网站重庆关键词优化软件
  • 企业网站建设方案范本免费的推广网站
  • 用什么软件做动漫视频网站好seo业务培训
  • 公司网站制作服务seo网址大全
  • 怎么做房产网站seo优化关键词分类
  • 公司网站怎么做关键词优化关键词技巧
  • 可以做哪些有趣的网站怎么做网站宣传
  • 访问网站详细过程如何做企业网页
  • 做网站一定需要服务器吗网络推广员的前景
  • 找效果图去哪个网站腾讯广告代理
  • 怎么做免流网站百度的人工客服电话
  • 个人性质网站名称汕头seo优化培训
  • 什么网站可以做教师资格证的题目百度seo培训班