当前位置: 首页 > 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]

}

相关文章:

  • 后端知识(理解背诵)
  • Kafka是如何防止消息丢失的
  • 最新暴力破解漏洞技术详解
  • 【技术分享】使用nginx完成动静分离➕集成SpringSession➕集成sentinel➕集成seata
  • STM32自学☞AD单通道
  • 基于C++的http通信记录,使用httplib,Windows环境,vscode,mingw
  • Quartz 任务调度框架源码阅读解析
  • 【K8s】初识PV和PVC
  • 【BUG 记录】MyBatis-Plus 处理枚举字段和 JSON 字段
  • 基于YOLOv8深度学习的复杂场景下船舶目标检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
  • 云端技术驾驭DAY15——ClusterIP服务、Ingress服务、Dashboard插件、k8s角色的认证与授权
  • hive中常见参数优化总结
  • 【LeetCode-简单】27.移除元素 - 数组与双指针法
  • 五种查看Spring容器中bean的方法
  • 面向对象编程入门:掌握C++类的基础(2/3):深入理解C++中的类成员函数
  • [ JavaScript ] 数据结构与算法 —— 链表
  • ES10 特性的完整指南
  • ES6系统学习----从Apollo Client看解构赋值
  • gulp 教程
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript函数式编程(一)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • opencv python Meanshift 和 Camshift
  • SpringBoot 实战 (三) | 配置文件详解
  • 对超线程几个不同角度的解释
  • 工程优化暨babel升级小记
  • 好的网址,关于.net 4.0 ,vs 2010
  • 回顾2016
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 译自由幺半群
  • Spring第一个helloWorld
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # .NET Framework中使用命名管道进行进程间通信
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • %check_box% in rails :coditions={:has_many , :through}
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (转)视频码率,帧率和分辨率的联系与区别
  • **PHP分步表单提交思路(分页表单提交)
  • ./configure,make,make install的作用
  • .Net Memory Profiler的使用举例
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net项目IIS、VS 附加进程调试
  • .NET业务框架的构建
  • @EnableAsync和@Async开始异步任务支持
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [100天算法】-不同路径 III(day 73)
  • [Android]Android P(9) WIFI学习笔记 - 扫描 (1)
  • [Android]创建TabBar
  • [Angularjs]ng-select和ng-options
  • [C]编译和预处理详解