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

代码随想录算法训练营day37|动态规划part05

完全背包问题;

第一题:518. Coin Change II

class Solution {public int change(int amount, int[] coins) {//递推表达式int[] dp = new int[amount + 1];//初始化dp数组,表示金额为0时只有一种情况,也就是什么都不装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]];}}return dp[amount];}
}
// 二维dp数组版本,方便理解
class Solution {public int change(int amount, int[] coins) {int[][] dp = new int[coins.length][amount+1];// 初始化边界值for(int i = 0; i < coins.length; i++){// 第一列的初始值为1dp[i][0] = 1;}for(int j = coins[0]; j <= amount; j++){// 初始化第一行dp[0][j] += dp[0][j-coins[0]];}for(int i = 1; i < coins.length; i++){for(int j = 1; j <= amount; j++){if(j < coins[i]) dp[i][j] = dp[i-1][j];else dp[i][j] = dp[i][j-coins[i]] + dp[i-1][j];}}return dp[coins.length-1][amount];}
}

第二题:377. Combination Sum IV

class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target + 1];dp[0] = 1;for (int i = 0; i <= target; i++) {for (int j = 0; j < nums.length; j++) {if (i >= nums[j]) {dp[i] += dp[i - nums[j]];}}}return dp[target];}
}

第三题:爬楼梯进阶

感觉今天学的技巧性都挺强的,完全背包的还得再看看;

如果求组合数就是外层for循环遍历物品,内层for遍历背包

如果求排列数就是外层for遍历背包,内层for循环遍历物品

 

 

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

相关文章:

  • Git 如何提交代码
  • SpringBoot-application.properties为对象赋值
  • Head First设计模式学习笔记
  • 240806-RHEL 无法通过 ssh username@ip 远程连接,报错:Connection closed by ip port 22
  • C语言:复读机2种写法(输入什么就输出什么)
  • PySide6/PyQT学习笔记(很杂)
  • 学习笔记-JWT 保持登录状态
  • React 性能优化
  • 后端常见问题及深度解决方案
  • C:野指针介绍(定义、危害、规避)以及野指针与空指针的区分
  • vue中v-html 后端返回html + script js中click事件不生效
  • 介绍maven生命周期-水温
  • spring boot3.x快速入门
  • JavaWeb之servlet关于Ajax实现前后端分离
  • vue3表格组件formatter
  • C# 使用NHibernate连接MySQL实现数据的增删改查
  • IDEA2024.2重磅发布,更新完有4G!
  • QWT+Qt Creator+MSVC的配置与使用
  • Netty高性能数据结构
  • 关于百度、微软语音合成的实现案例
  • 二叉树:镜像树,子结构,二叉树转链表,二叉树的倒数K个数,对称,Z型打印
  • 瑞秋,詹妮弗·安妮斯顿多年来与本·阿弗莱克保持着“调情”友谊 又一个詹妮弗
  • 指纹失效,忘记iPhone屏幕解锁密码怎么应对?
  • 09.XSS跨站脚本攻击(超详细!!!)
  • 讲解人工智能在现代科技中的应用和未来发展趋势-水文
  • 2.2 QT 环境配置
  • 2.类和对象(上)
  • 【实际案例】服务器宕机情况分析及处理建议
  • Linux系统之ncdu命令的基本使用
  • STM32L051K8U6-HAL-LED闪烁设计