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

算法训练营day38(补),动态规划6

package main

func max(a, b int) int {

  if a > b {

    return a

  }

  return b

}

背包最大重量为4。

物品为:

重量价值
物品0115
物品1320
物品2430

每件商品都有无限个!

问背包能背的物品最大价值是多少?

func package03(weight, value []int, bagweight int) int {

  dp := make([]int, bagweight+1)

//遍历物品

  for i := 0; i < len(weight); i++ {  

 //遍历背包容量

    for j := weight[i]; j <= bagweight; j++ {

      dp[j] = max(dp[j], dp[j-weight[i]]+value[i])

    }

  }

  return dp[bagweight]

}

//518. 零钱兑换 II

//求装满背包有几种方法,递推公式一般都是dp[i] += dp[i - nums[j]];

func change(amount int, coins []int) int {

  dp := make([]int, amount+1)

  dp[0] = 1

  for i := 0; i < len(coins); i++ {

    for j := coins[i]; j <= amount; j++ {

      dp[j] += dp[j-coins[i]]

    }

  }

  return dp[amount]

}

//377. 组合总和 Ⅳ

func combinationSum4(nums []int, target int) int {

  dp := make([]int, target+1)

  dp[0] = 1

  for j := 0; j <= target; j++ {

    for i := 0; i < len(nums); i++ {

      if j >= nums[i] {

        dp[j] += dp[j-nums[i]]

      }

    }

  }

  return dp[target]

}

http://www.lryc.cn/news/308352.html

相关文章:

  • 【java、微服务、nacos】nacos服务分级存储模型
  • 共享旅游卡:打开0费用旅游新纪元,探索40+精彩线路
  • MQTT协议解析:揭秘固定报头、可变报头与有效载荷的奥秘
  • 备战蓝桥杯---树形DP基础3
  • IEEE Transactions on Industrial Electronics工业电子TIE修改稿注意事项及提交须知
  • c#委托的三种实现方式
  • c/c++|红黑树|分析应用|锚点
  • 2-29算法习题总结
  • 当Linux 磁盘满了,查看大文件并删除
  • STL -萃取特性迭代器
  • python pandas写入csv
  • oracle 数据库建集群式数据库的DBLINK的语法
  • 基于JAVA的毕业设计分配选题系统 开源项目
  • Android 接入指纹识别
  • 如何通过代理IP安全使用Linkedln领英?
  • 嵌入式驱动学习第一周——定时器与延时函数
  • Tips杂记
  • 可以用numpy为for加速
  • cartographer ceres后端优化
  • day57 集合 List Set Map
  • 蓝桥杯:真题讲解3(C++版)附带解析
  • 继续预训练对大语言模型的影响
  • 关于空频变换的知识点
  • 纯css实现-让字符串在文字少时显示为居中对齐,而在文字多时显示为左对齐
  • 初学HTMLCSS——盒子模型
  • 吸猫毛空气净化器哪个好?推荐除猫毛好的宠物空气净化器品牌
  • 【玩转408数据结构】线性表——双链表、循环链表和静态链表(线性表的链式表示 下)
  • 分布式概念
  • vue中的ref/reactive区别及原理
  • 深度学习介绍与环境搭建